使用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远程执行-模块