G远程执行目标选择分为两类
1.和Minion ID有关,需要使用Minion ID:
1)Globbing(通配符)
2)regex(正则表达式)
3)List(列表)
2.和MinionID无关不涉及到Minion ID:
1)子网/IP地址
2)Grains
3)Pillar
4)Compound matchers(复合匹配)
5)Node groups(节点组)
6)Batching execution(批处理执行)
第一种就涉及到minion的设置
一般minion设置和业务关联起来.
或者用ip地址设置.参考如下:
1.第一种的各种情况
1)通配符 典型的就是*, ""linux-node?"",linux[1-2].总之复合shell统配符
2)列表的使用方法 salt -L "linux-node1.example.com,linux-node2.example" 各列表元素之间用"",""逗号来区割.
3)正则表达式的方法 salt -E "linux-(node1|node2)*" test.ping 通过-E来是指正则.
上面说的方法都是可以再top.sls文件里使用的.
在top.sls里面使用正则的方式如下:
base:
"linux-(node1|node2)*":
- match: pcre
- web.apache
2.和Minion id无关的各种情况.
1)使用ip相关的 示例: salt -S "192.168.56.11" test.ping 指定ip用 -S 也可以指定子网掩码.示例: salt -S "192.168.56.0/24" test.ping
2)使用Grains 示例 salt -G "os:Gentos" test.ping
3)在使用grains的情况也可以是使用正则 -P 相当于 -- grain-pcre 示例: salt -P "os_family:Red(Hat|Flag)" test.ping
4)混合匹配,这个就比较复杂,如下: 混合匹配是 - C
混合匹配示例:
salt -C "S@192.168.56.11 or L@linux-node2.example.com" test.ping
或者:
salt -C "S@192.168.56.11/24 not L@linux-node1.example.com" test.ping
5)节点组
首先要改/etc/salt/master的配置文件,如下图
配置好后需要重启 salt-master.然后使用如下示例:
salt -N web-group cmd.run "uptime"
节点组在top.sls里面是如何使用的呢,使用示例如下:
6)批处理
使用示例:
salt "*" -b 1 test.ping -b是指定同时有多少台机器来执行.比如这里指定为1,那么就是一台一台执行.
也可以再执行其他方法时加上批处理.示例如下:
salt -G "os:Centos" --batch-size 5% test.ping