一、pillar简介
- pillar和grains一样也是一个数据系统,但是应用场景不同。
- pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等,而且可以指定某一个minion才可以看到对应的信息。
- pillar更加适合在配置管理中运用。
二、声明pillar
- 定义pillar基础目录:
vim /etc/salt/master
##修改
pillar_roots:
base:
- /srv/pillar
mkdir /srv/pillar
- 重启salt-master服务:
/etc/init.d/salt-master restart
注意:默认目录就是/srv/pillar
,可以不用修改配置文件,服务业就不需要重启。
三、自定义pillar项
- 定义项:
vim /srv/pillar/top.sls
##写入
base:
'*':
- packages
vim /srv/pillar/apache.sls
##写入
{% if grains['fqdn'] == 'server3' %}
package: nginx
{% elif grains['fqdn'] == 'server2' %}
package: httpd
{% endif %}
注意: 这里会匹配所有minion,现在只有两台minion,所以endif
后面不加参数,否则报错。如果有更多的minion,则需要写。
- 刷新pillar数据:
salt '*' saltutil.refresh_pillar
- 查询pillar数据:
salt 'server2' pillar.items package
salt 'server3' pillar.items package
四、pillar数据匹配
1、命令行中匹配
salt -I package:nginx cmd.run hostname
2、state系统中使用
vim /srv/salt/apache/init.sls
在server2上安装了apache,在server3上安装了nginx。