1. 机器管理

[root@feng-pc tmp]# mydan node
Usage: mydan.node COMMAND [arg...]
Options:
        --dan   Switch to `dan` first.
        --box   Switch to `box` first.
        Help    show detail
Commands:
        * show  show出cache中的机器
        * dump  dump出data中的机器
        * cache 生成cache
        * load  load数据到数据库
          motify        修改数据
        * purge 删除数据
Run 'mydan.node COMMAND --help' for more information on a command.

1.1. 编辑机器配置文件

  • 编辑自己的机器管理的配置文件,文件中的结构分成四层
  • 第一层是项目名或者cluster名,第二层为机器属性(比如机房信息,模块), 第三层为操作对象(比如机器),第四层为资源状态(比如监控系统和发布系统中,状态为0的不处理)。
cat > hostdb <<EOF
---
project1:
  idc1:
    'localhost': 1
  idc2:
    '127.0.0.1': 1
EOF

1.2. 加载配置文件

mydan node load hostdb

1.3. dump出机器信息

mydan node dump  #dump出所有的机器信息
mydan node dump project1 #dump出项目名为project1的机器信息
mydan node dump project1 --compress #压缩显示
mydan node dump --output /tmp/hostdb #dump到指定文件中

1.4. 生成缓存cache

mydan node cache

1.5. 查看缓存

mydan node show 
mydan node show project1
  • 与dump类似,区别在于show是在cache中读取的数据

1.6. 修改状态

mydan node modfiy  --range 127.0.0.1 -v 3 -c project1 -t idc1  # 把 project1下的idc1中的127.0.0.1状态改成3

mydan node cache #加载到缓存中

1.7. 删除

mydan node purge --cluster project1 --table idc1 #删除project1下的所有idc1

1.8. 其他

  • 机器管理中的cache在路径 /opt/mydan/etc/node/cache 下,如果出现问题,可以在这里进行回滚
  • 没有进入缓存之前的文件放在 /opt/mydan/etc/node/data 路径下

2. 操作对象描述

有了机器管理,下面介绍一下操作对象描述

从机器管理中获取操作对象

获取所有的机器

mydan node range '{==*==*??==*}'

获取编号为1的所有机器:

mydan node range '{==*==*??==1}'

通过插件的方式获取机器

/opt/mydan/dan/node/callback 下放了node的插件 默认情况下有两个插件,如果需要扩展可以自己开发

插件list, 在文件中获取机器列表: 如在目录/path/foo中有文件 a.list 和 b.list cd 进入/path/foo目录运行

mydan range '{%%list==a}' #获取a.list 的机器列表
mydan range '{%%list==a,b}' #获取a.list 和b.list的机器列表
mydan range '{%%list}' #获取所有以 .list文件为后缀的机器列表

node插件

mydan range '{%%node}' #获取机器管理中全部机器

表达式

mydan range 'node{1~100}' #获取 node1 到node100的列表
mydan range '{==project1==*??==*},10.10.10.10,-127.0.0.1,&/abc/' #获取project1下的所有机器,在加上10.10.10.10这个机器,在去掉127.0.0.1这个机器,在过滤出包涵字符abc的列表

3. 操作

这样就可以批量操作多个机器了

[root@feng-pc ~]# mydan rcall -r '{==*==*??==*}' exec w
run .. 100% 2/2
############################## RESULT ##############################
====================================================================
127.0.0.1,localhost[2]:
 16:00:30 up 221 days, 23:20,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    10.10.10.10    12:21    3:02   2.06s  2.06s -bash
root     pts/2    10.10.10.10    14:58    6.00s  0.79s  0.71s /opt/mydan/perl/bin/perl /opt/mydan/dan/tools/rcall -r {==*==*??==*} exec w
====================================================================
Copyright 2017 - 2018. all right reserved,powered by Gitbook该文件修订时间: 2020-07-16 18:11:39

results matching ""

    No results matching ""