saltsack自动化配置day01:数据系统-Pillar

一. 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 %}
  1. 直接写个apache: httpd完事
  2. 状态文件里面用pillar,具体什么值pillar帮我判断,pillar用什么判断,pillar用grans帮我判断
  3. 现在用用不了,是因为你没有指定谁能看到到他

2、pillar下的top.sls

base: 
  '*':
    - apache
  1. 谁能执行apache
  2. 生产的时候*不能随便用,就失去了他的作用
  3. 你不用安全性功能的话还不如用grans了
  4. pillar动态的不用重启

3、如何引用pillar(salt下的appale.sls)

apache-install:
  pkg.installed:
    - name: {{ pillar['apache'] }}

apache-service:
  service.running:
    - name: {{ pillar['apache'] }}
    - enable: True
  1. 如何查看pillar
  2. 解析后是python的字典
  3. 直接可以在sls里面写python的语法,它自己能兼容

三、生产企业案例安装zabbix

1、配置master

[root@salt-master ~]# vim /etc/salt/master
pillar_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:
    True
salt-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

posted @ 2018-09-05 14:42  活的潇洒80  阅读(208)  评论(0编辑  收藏  举报