SaltStack数据系统-Pillar

  上一篇:SaltStack数据系统-Grains

  

  使用saltstack进行配置管理可以使用pillar定义主机假如是Openstack修改了一下nova的密码就需要修改很多配置文件

  pillar很安全只有指定的人才能看

  查看pillar(默认为空)

salt '*' pillar.items

  修改配置文件设置成显示

  可以使用命令salt '*' pillar.items查看

  关闭配置以免影响自定义pillar 

 

  设置pillar

  修改配置文件/etc/salt/master(pillar设置与file_roots设置很像但是作用完全不同)

  新建这两个文件夹

mkdir -p /srv/pillar/base
mkdir -p /srv/pillar/prod

  重启master

  编写pillar的sls文件/srv/pillar/base/apache.sls

{% if grains['os'] == 'CentOS' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}

  这里加了if判断把grains加上了,其实简单一点直接写apache: httpd即可

  虽然写了pillar但是还没有指定谁用这个pillar需要写top.sls指定那个minion执行这个pillar

  配置文件/srv/pillar/base/top.sls

base:
  '*':
    - apache

  生产不要写*而是需要指定应用这个pillar的主机ID

  刷新(不需要重启)

salt '*' saltutil.refresh_pillar

  查看

salt '*' pillar.items apache

  PS:pillar放置一些敏感数据比如用户名密码等,因为pillar数据加密比较安全

    pillar是在master上面设置的和minion无关

 

  修改之前的apache安装的配置文件使用pillar的用法

  /srv/salt/base/web/apache.sls

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

apache-service:
  service.running:
    - name: {{ pillar['apache'] }}
    - enable: True

  执行(不报错就是对的)

  这里其实是去字典里面的key为apache的value即是httpd

salt '*' state.highstate

  

  grains和pillar的对比

   存储位置      类型    采集方式         场景
Grains minion    静态   minion启动时,可以刷新   1,获取信息 2,匹配

Pillar master      动态   指定,实时生效         1,匹配 2,敏感数据配置

 

  下一篇:SaltStack远程执行-模块

posted @ 2018-03-30 07:30  minseo  阅读(309)  评论(0编辑  收藏  举报