一,定义
Pillar是Salt用来分发全局变量到所有minions的一个接口。不像是state tree, pillar只对匹配类型的minion有效。 这使它为特定的minion存储敏感数据非常有用.官网详细介绍
二,简化pillar配置步骤
正常情况下,每个或每组minion在top.sls中单独配置,这样略显麻烦,可以使用py模式的sls文件来简化配置
1,要启用pillar,首先要修改master中的配置
2,重启salt master
service salt-master restart |
|
3,建立top.sls,这里使用*号匹配所有的minion到custom
touch /srv/pillar/``top``.sls |
|
vim /srv/pillar/``top``.sls |
|
4,编写custom/init.sls
touch /srv/pillar/custom/init.sls |
|
vim /srv/pillar/custom/init.sls |
|
首先获取请求的salt id,例如id是:1.2.3.4-centos.game.web,然后根据获取的pillar_root组合成路径/srv/pillar/custom/1.2.3.4-centos.game.web |
|
如果文件存在,利用yaml模块从文件中读取信息,返回字典 |
|
id``=``__opts__[``'id'``] |
|
pillar_root``=``__opts__[``'pillar_roots'``][``'base'``][``0``] |
|
path``=``'%s/custom/%s'``%``(pillar_root,``id``) |
|
s``=``open``(path).read() |
|
5,这样以后需要添加对应salt minion的pillar信息时,只要到custom目录下新建以salt id命名的文件,文件内容为yaml格式,就可以自动解析了,省去了到top.sls中添加配置的烦恼。例如 salt id为1.2.3.4-centos.game.web:
touch``/``srv``/``pillar``/``custom``/``1.2``.``3.4``-``centos.game.web |
|
vim``/``srv``/``pillar``/``custom``/``1.2``.``3.4``-``centos.game.web |
|
编写完后执行下面的命令就能看到age信息了。
salt``1.2``.``3.4``-``centos.game.web pillar.item age |
|
三,总结
pillar系统还是非常灵活的,熟练的使用可以进一步提升自动化的程度。
转载请注明:爱开源 » saltstack应用之简化pillar配置步骤
转载请注明:爱开源 » saltstack应用之简化pillar配置步骤