saltstack分组管理实施

使用saltstack的原因是为了对批量的机器执行相同的操作。有可能这一百台运行的是web、另外一百台运行的是db,也有可能web里面有一部分是账户系统,还有一部分的审核系统。所以分组就显的比较有用。淡然,如果不分组我们也是可以实现的。但是有时候,比较麻烦!
一、配置分组

从上面执行的结果看,是OK的。当然是为了简化这个过程,以后只需要 -N +组句就ok了,而且也便于区分。
为minion进行预先分组配置非常简单,只需要编辑/etc/salt/master文件即可。示例如下:

进行test.ping测试如下:

二、分组语法
nodegroup分组时可以用到的语法关键字有G、E、P、L、I、S、R、D几个,几者的意义和用法见下表:
saltgroup
此外,匹配中可以使用and、or及not等boolean型操作。例:
想匹配所有minion中主机名(minion id)以webserv开头并且运行在Debian系统上或者minion的主机名(minion id)匹配正则表达式web-dc1-srv.* ,就可以用下表方式表示:

类别 用途 命令行使用 top中使用
ID 通配符 salt '*' test.ping 默认的
pcre salt -E 'compute(12)|(23)' test.ping match:pcre
list salt -L 'list1,list2' test.ping match:list
Pillar master主动定义的变量 salt -I 'master:auth_mode:1' test.ping match:pillar
Grains minion的系统信息 salt -G 'os:Debian' test.ping match:grain
CIDR 通过网络地址来过滤 salt -S 192.168.1.0/24 test.ping match:ipcidr
分组 可以进行分组 salt -N 'compute' test.ping match:nodegroup
compound 组合 salt -C 'G@os:RedHat and webser* or E@database.*' test.ping match:compou

salt -C 'webserv* and G@os:Debian or E@web-dc1-srv.*' test.ping
当然也可以在预先分组时将这个配置写在分组规则里。在top.sls中可以如下使用:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: