Saltstack-06-通配符、正则表达式、Nodegroups

229 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、目标

Nodegroups其实就是在salt的master配置文件里定义好一定的搜索规则,然后给规则取个别名,然后在master直接执行salt命令去调取别名即可。详细看第四步介绍

二、说明

image.png

三、实例

1.星号*代表匹配一个或多个字符

salt 's*3' test.ping

image.png

2.问号?代表一个字符

salt 'salt?' test.ping

image.png

3.中括号[]内的所有字符都分别匹配一次

salt 'salt[23]' test.ping

image.png

4.中括号[]内的感叹号代表取非各匹配一次

salt 'salt[!23]' test.ping

image.png

5.列表中不可以使用通配符

salt -L 'salt2,salt3,salt*' test.ping

image.png

6.正则表达式

匹配非2和3

salt -E 'salt[^23]' test.ping

image.png

注意,在sls剧本里,如果要使用正则表达式,则必须声明【- match: prce】

7.匹配子网

salt -S '10.100.100.0/24' test.ping

image.png 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@代表子网

image.png

四、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

image.png