运维工具SaltStack之四Pillar组件
一、pillar组件介绍
跟grains的结构一样,存放需要提供给Minion端的信息,存储在master端。可根据各个机器环境的不同,分别定义变量,然后再sls文件里统一引用,官方表示pillar是存储敏感数据的,主要解决环境的差异性。同时与grains组件还有一个特别的区别:grains数据加载在内存里,即minion启动之后不会变,哪怕修改了grains,除非重启minion或者从master端同步。而pillar修改之后,再获取数据即生效了。
注;pillar是存放在master端,默认位置/srv/pillar,需要新建目录。和salt sls类似,也是需要top.sls
二、pillar组件自定义
1.使用默认的Master的pillar_roots配置路径 /srv/pillar需要新创建该目录
# mkdir /srv/pillar
2.修改salt的Master主配置文件(/etc/salt/master),新增如下内容,并且需要重启Master服务:
pillar_roots: base: - /srv/pillar # systemctl restart salt-master.service
注意:yaml格式问题: 和 - 后有空格,小心缩进!!!!!!!!
3.在/srv/pillar目录下新建top.sls(入口文件),如:
# cat /srv/pillar/top.sls base: ‘*‘: - test #指data.sls文件
注:‘*‘代表任意主机,- test 指包含一个test.sls文件.top.sls引用时可用两种方法:文件放在同级;二是在pillar目录下创建test目录,在该目录下创建init.sls文件。
4.在/srv/pillar目录下新建test.sls,内容如下:
# cat test.sls httpd: pkg: httpd version: 2.4
5.刷新Minion端主机的pillar信息,检查test.sls数据项mysql
# salt ‘*‘ saltutil.refresh_pillar minion01: True # salt ‘minion01‘ pillar.items minion01: ---------- httpd: ---------- pkg: httpd version: 2.4
6.常见pillar命令
salt ‘*‘ sys.doc pillar #查看与pillar有关的帮助信息
salt ‘*‘ pillar.items #获取所有pillar items值
salt ‘*‘ pillar.data #等价于pillar.items
salt ‘*‘ saltutil.refresh_pillar #刷新pillar值
salt ‘*‘ saltutil.sync_all #刷新pillar值,与refresh_pillar操作类似,但范围更大
salt ‘*‘ sys.list_functions pillar #列出所有的pillar相关函数方法
salt ‘*‘ pillar.get xxx #获取某项的值
salt ‘*‘ pillar.raw #内存中获取
本文出自 “一万小时定律” 博客,请务必保留此出处http://daisywei.blog.51cto.com/7837970/1905394
原文地址:http://daisywei.blog.51cto.com/7837970/1905394