一. Pillar简介和应用场景
Pillar是Salt用来分发全局变量到所有minions的一个接口。Pillar data的管理类似于Salt State Tree。
Salt 0.9.8版本增加了pillar(动态数据)
存储位置:
* 存储在master端,存放需要提供给minion的信息。
应用场景:
* 敏感信息:每个minion只能访问master分配给自己的。
一、企业生产案例安装apache
1、pillar下的appale.sls
{% if grains['os'] == 'CentOS' %}apache: httpd{% elif grains['os'] == 'Debian' %}apache: apache2{% endif %}
- 直接写个apache: httpd完事
- 状态文件里面用pillar,具体什么值pillar帮我判断,pillar用什么判断,pillar用grans帮我判断
- 现在用用不了,是因为你没有指定谁能看到到他
2、pillar下的top.sls
base: '*': - apache
- 谁能执行apache
- 生产的时候*不能随便用,就失去了他的作用
- 你不用安全性功能的话还不如用grans了
- pillar动态的不用重启
3、如何引用pillar(salt下的appale.sls)
apache-install: pkg.installed: - name: { { pillar['apache'] }}apache-service: service.running: - name: { { pillar['apache'] }} - enable: True
- 如何查看pillar
- 解析后是python的字典
- 直接可以在sls里面写python的语法,它自己能兼容
三、生产企业案例安装zabbix
1、配置master
[root@salt-master ~]# vim /etc/salt/masterpillar_roots: base: - /srv/pillar[root@salt-master ~]# mkdir -p /srv/pillar[root@salt-master ~]# cd /srv/pillar/
2、pillar下的zabbix.sls
[root@salt-master pillar]# vim zabbix.sls Zabbix_Server: 10.1.0.111
3、pillar下的top.sls
[root@salt-master pillar]# vim top.sls
base: '10.1.0.112': - zabbix
4、刷新设置的值
[root@salt-master pillar]# salt '*' saltutil.refresh_pillar #刷新值 10.1.0.112: Truesalt-master: True[root@salt-master pillar]# [root@salt-master pillar]# salt -I 'Zabbix_Server:10.1.0.111' test.ping #测试10.1.0.112: True
salt 'minion' pillar.items 查看是否会列出test.sls的配置信息
salt 'minion' pillar.item hostname 查看是否会列出hostname的配置信息
salt -I hostname:minion cmd.run ls 查看是否会执行根据配置信息去匹配minion并执行远程命令
四、小结
更多sls状态文件见:https://github.com/topics/saltstack-formula