当服务器有很多的时候,有必要进行分组,以下为分组的方法,常用的已标红。
letter | 含义 | 例子 |
G | Grains glob匹配 | G@os:Centos |
E | PCRE正则匹配minion_id | E@web\d+\.(dev|qa|prod)\.loc |
P | PCRE正则匹配Grains | P@os:(RedHat|Centos) |
L | minion_id列表 | L@vas01,vas02,vas03 |
I | pillar glob匹配 | I@pdata:foobar |
S | 子网/ip地址匹配 | S@192.168.1.0/24 or S@192.168.1.100 |
R | Range cluster匹配 | R@%foo.bar |
D | minion data匹配,需要定义data | D@key:value |
N | 组+组匹配 | N@group1 or N@group2 |
master上修改配置文件/etc/salt/master
注意yaml文件格式,下边组名前边有2个空格,冒号后边有一个空格,不能用tabnodegroups: node2-3: 'L@linux-node2.example.com,linux-node3.example.com' node4: 'L@linux-node4.example.com' ip2-3: 'S@192.168.1.62 or S@192.168.1.63' ip4: 'S@192.168.1.64'
这里用了两种分组方法,L和S,注意文件格式。L的ID就是每个服务器的主机名。修改后重启master服务:
systemctl restart salt-master.service
然后进行测试:
[root@linux-node1 salt]# salt -N node2-3 test.ping linux-node2.example.com: True linux-node3.example.com: True [root@linux-node1 salt]# salt -N ip2-3 test.ping linux-node3.example.com: True linux-node2.example.com: True [root@linux-node1 salt]# salt -N ip4 test.ping linux-node4.example.com: True [root@linux-node1 salt]# salt -N node4 test.ping linux-node4.example.com: True