gersdqw 发表于 2015-3-10 08:28:18

集中化管理平台Saltstack远程执行命令

官网:http://saltstack.com/
国内:http://www.saltstack.cn/
命令格式:

   salt '<操作目标>' <方法> <参数>

1.查看minion001主机使用:

1
2
3
4
5
6
7
# salt 'minion001' cmd.run 'free -m'
minion001:
               total       used       free   shared    buffers   cached
    Mem:         988      560      428          0         32      305
    -/+ buffers/cache:      221      766
    Swap:         1983          0       1983
#




2.-E,--pcre 通过正则表达式匹配主机
测试已minion开头的主机是否连通

1
2
3
4
5
6
# salt -E '^minion' test.ping
minion001:
    True
minion002:
    True
#




3.-L,--list,以主机id名列表的形式过滤,格式与python列表类似
获取minion001,minion002的系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# salt -L 'minion001,minion002' grains.items osfullname
minion002:
    ----------
    SSDs:
    biosreleasedate:
      01/23/2012
    biosversion:
      6.00
    cpu_flags:
      - fpu
minion001:
    ----------
    SSDs:
    biosreleasedate:
      01/23/2012
    biosversion:
      6.00
    cpu_flags:
      - fpu
      - vme
      - de




4.-G,--grain, 根据被控主机的grains信息进行匹配过滤
格式为:'<grain value>:<glob expression>'
例如:过滤内核为Linux的主机:可写成,‘kernel:Linux'

1
2
3
4
5
6
# salt -G 'osrelease:6.4' cmd.run 'python -V'
minion001:
    Python 2.6.6
minion002:
    Python 2.6.6
#




如果需要配合正则表达式,使用参数--grain-pcre,经测试只能冒号后的<glob expression>能用正则

1
2
3
4
5
6
7
8
# salt --grain-pcre '+:linux' test.ping      
No minions matched the target. No command was sent, no jid was assigned.
# salt --grain-pcre 'kernel:+' test.ping         
minion001:
    True
minion002:
    True
#




5.-I,--pillar 根据被控主机的pillar信息进行匹配过滤
格式: "对象名称:对象值"
过滤:'apache: httpd'   "nginx: root: /data"
待测。。。

6.-N ,--nodegroup ,根据主控端master配置文件/etc/salt/master中的分组进行过滤
组的定义支持正则表达式,grain,条件运算等
分组,官网:http://docs.saltstack.com/en/latest/topics/targeting/nodegroups.html

1
2
3
4
5
6
7
8
9
10
11
12
# cat /etc/salt/master
interface: 192.168.224.141
auto_accept: True
file_roots:
    base:
      - /srv/salt
nodegroups:
    group1:'minion001'
    group2:'minion002'
    group3:'minion001,minion002'
    group4:'*'
    group5:'E@^minion'





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# salt -N group1 test.ping
minion001:
    True
# salt -N group2 test.ping
minion002:
    True
# salt -N group3 test.ping
minion002:
    True
minion001:
    True
# salt -N group4 test.ping         
minion001:
    True
minion002:
    True
# salt -N group5 test.ping
minion002:
    True
minion001:
    True
#




7.-C,--compound,根据条件运算符not,and,or匹配不同规则的主机信息
探测id以minion开头,系统为Centos的主机的连通性


1
2
3
4
5
6
# salt -C 'E@^minion and G@os:Centos' test.ping   
minion002:
    True
minion001:
    True
#




8.-S,--ipcidr 根据被控主机的IP地址或IP子网进行匹配

1
2
3
4
5
6
7
8
9
# salt -S '192.168.224.142' test.ping
minion001:
    True
# salt -S '192.168.224.0/24' test.ping   
minion002:
    True
minion001:
    True
#



页: [1]
查看完整版本: 集中化管理平台Saltstack远程执行命令