SaltStack — Pillar的使用
1 pillar简介
- pillar和grains一样也是一个数据系统,但是应用场景不同
- pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才可以看到对应的信息
- pillar更加适合在配置管理中运用
2 pillar的声明
(1) 查看pillar的base目录:vim /etc/salt/master
- 默认的base目录是:
/srv/pillar
(2)建立pillardebase目录:mkdir /srv/pillar
3 pillar的使用
(1)编辑pillar的package.sls文件:vim /srv/pillar/package.sls
{% if grains['fqdn'] == 'server3' %}
package: nginx
{% elif grains['fqdn'] == 'server2' %}
port: 8080
bind: 172.25.12.2
{% endif %}
(2) 编辑pillar的top.sls文件:vim /srv/pillar/top.sls
base:
'*':
- package ##/srv/pillar/package.sls
(3) 编辑安装apache的init.sls文件:vim /srv/salt/apache/init.sls
apache:
pkg.installed:
- pkgs:
- httpd
- php
- php-mysql
file.managed:
- source: salt://apache/files/httpd.conf
- name: /etc/httpd/conf/httpd.conf
- template: jinja
- context:
port: {{ pillar['port'] }}
bind: {{ pillar['bind'] }}
service.running:
- name: httpd
- enable: true
- watch:
- file: apache
/var/www/html/index.html:
file.managed:
- source: salt://apache/files/index.html
- template: jinja
- context:
NAME: {{ grains['fqdn'] }}
(4) 测试:salt server2 state.sls apache
- 查看server2的apache监听的端头号:
netstat -antlp
- pillar的文件不会同步到minion端
- pillar数据匹配:
salt '*' pillar.items