salt命令指定minions的方式
作者:杨冬 欢迎转载,也请保留这段声明。谢谢!
出处:https://andyyoung01.github.io/ 或 http://andyyoung01.16mb.com/
上篇文章学习了salt state中的高级用法,本篇学习salt如何targeting minions,也就是salt如何定位目标主机。另外在定位主机时,有一种方法是通过nodegroups,后面再来学习一下如何配置nodegroups。
确定目标主机的方式
作为配置管理软件,首先要解决的是如何确定一次推送的主机,或者说特定配置的推送目标。下面就来看一下salt支持的匹配主机的方式:
1. Globbing
这是默认的匹配方式,可以使用linux shell风格的通配符:
salt '*.salt-cookbook.com' state.sls user
在Top文件中:
2. Lists
后接一串以逗号分隔的minion id列表,通过-L选项指定:
salt –L 'prddc1mon01,prddc2mon05' state.sls user
在Top文件中:
3. Regular expressions
即正则匹配方式,对象同样是minion id,通过-E选项指定:
salt -E 'dev-(dc1|dc2|dc3)-db' state.sls user
在Top文件中:
4. Grains
基于grains数据的匹配,通过-G选项指定:
salt –G 'server_type:app' state.sls user
在Top文件中:
5. Subnet/IP
基于subnet/IP地址的匹配方式,通过-E选项指定:
salt –S 10.0.0.0/24 state.sls user
在Top文件中:
6. Pillar
通过提供对某个minion可用的pillar键值对的方式进行匹配,通过-I选项指定:
salt –I 'app_user:stg-app' state.sls user
在Top文件中:
7. 基于Grains的正则
与正则匹配方式类似,只不过是基于grains数据应用正则匹配,通过–grain-pcre选项指定:
salt –grain-pcre 'os:(RedHat|CentOS)' state.sls user
在Top文件中:
8. 组合匹配
这种匹配方式将上述不同的方式综合起来进行匹配,通过-C选项指定:
salt –C 'G@os:Ubuntu and \
S@172.32.0.0/24' pillar.item fqdn
在Top文件中:
9. NodeGroup
通过NodeGroup进行匹配,下一节介绍NodeGroup的配置,通过-N选项指定:
salt –N prodmon state.sls user
在Top文件中:
配置nodegroups
配置nodegroup可以在主配置文件/etc/salt/master将nodegroups的配置项取消注释,也可以在/etc/salt/maste.d文件夹下创建一个新的nodegroups.conf的配置文件,内容如下:
配置完成后重新启动salt-master的daemon来使配置生效。
上面的配置文件配置了三个组,组名分别为stgdb、dc1devapp和prodmon。组stgdb中包含所有具有指定grains数据的节点,grains的内容是通过后面指定的。它的格式与在top文件中指定匹配方式相同。
本篇了解了salt命令中指定minions的方式,下篇来了解一下salt的执行模块、state模块及salt runners。