saltstack 命令行批量操作:
- 匹配策略:
- minion 匹配:
这种方式是基于匹配minion_id,minion_id在默认情况下是minion节点的fqdn。匹配的方式支持正则表达式、通配符、列表
- minion 匹配:
匹配参数: -G ,-E , -L , -F , -I , -S
-G : 表示使用grain匹配 grain global
salt -G "os:CentOS" test.ping
-E : 表示使用正则匹配 pcre minion_id
salt -E ".*u$" test.ping
salt -E "^j.*" test.ping
-L : 表示匹配minion列表 minion1,minion2
salt -L "jinkeen-ubuntu,ginkgo" test.ping
-S : 表示使用子网或者IP地址匹配
salt -S "120.26.48.161" test.ping
-I : 表示使用pillar匹配 pillar global
- 节点匹配:
节点组将不同的主机分配到不同的组中去,便于实现主机的集中化管理
要使用salt的分组功能,需要在master节点上进行配置,配置的方式有两种:
- 将分组信息写在master的主配置文件
- 将分组信息写在一个单独的配置文件中,然后主配置文件来include 分组配置文件(推荐,有利于降低耦合性)
打开注释: default_include:
cat master.d/group.conf
nodegroupsa:
group1: "L@jinkeen-ubuntu,ginkgo"
group2: "G@os:Ubuntu"
L@jinkeen-ubuntu,ginkgo 表示匹配的是一个minion列表,成员为minion 的id .
G@os:Ubuntu 表示匹配的是grains属性 <一定要注意:G@os:CentOS,先调用了Grain模块,然后调用了os函数>
重启服务
service salt-master restart
salt -N "group2" test.ping
jinkeen-ubuntu:
True
在top文件中匹配所需要的组:
base:
group1:
- match: nodegroup
- httpd