本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、目标
Nodegroups其实就是在salt的master配置文件里定义好一定的搜索规则,然后给规则取个别名,然后在master直接执行salt命令去调取别名即可。详细看第四步介绍
二、说明
三、实例
1.星号*代表匹配一个或多个字符
salt 's*3' test.ping
2.问号?代表一个字符
salt 'salt?' test.ping
3.中括号[]内的所有字符都分别匹配一次
salt 'salt[23]' test.ping
4.中括号[]内的感叹号代表取非各匹配一次
salt 'salt[!23]' test.ping
5.列表中不可以使用通配符
salt -L 'salt2,salt3,salt*' test.ping
6.正则表达式
匹配非2和3
salt -E 'salt[^23]' test.ping
注意,在sls剧本里,如果要使用正则表达式,则必须声明【- match: prce】
7.匹配子网
salt -S '10.100.100.0/24' test.ping
8.混合匹配,即可以使用各种条件、如同时使用pillar,grains去搜索目标
salt -C 'I@deployment:datacenter4 and I@roles:ftpserver and G@os:Centos' test.ping 混合匹配要用参数-C,单引号里面的I@代表是pillar,G@代表是Grains条件,E@代表正则,S@代表子网
四、nodegroups的使用
1。修改salt-master配置文件
vim /etc/salt/master
#nodegroups下面的条目kahn就是一个节点名,以后在master上可以直接调用这个节点名,相当于执行了 salt -C和里面定义的规则
#下面的意思是混合搜索,匹配pillar里I@deployment:数据中心4,并且又是ftp服务器,并且操作系统是Centos的所有客户端。 nodegroups: kahn: 'I@deployment:datacenter4 and I@roles:ftpserver and G@os:Centos' 2.重启master
systemctl restart salt-master 3.调取并执行nodegroups里刚才定义的kahn节点规则
salt -N 'kahn' test.ping
注释:命令等同于salt -C 'I@deployment:datacenter4 and I@roles:ftpserver and G@os:Centos' test.ping