saltstack
一、pillar介绍
pillar和grains一样也是一个数据系统,但是应用场景不同。
pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等),而且可以指定某一个minion才可以看到对应的信息。
pillar更加适合在配置管理中运用。
二、piller操作
- 声明pillar
[root@server2 srv]# pwd
/srv
[root@server2 srv]# mkdir pillar # 默认路径为/srv/pillar,目录pillar得自己创建
- 自定义pillar项
[root@server2 pillar]# cat web.sls
{% if grains['fqdn'] == 'server3' %} # fqdn表示域名
webserver: httpd
{% elif grains['fqdn'] == 'server4' %}
webserver: nginx
{% endif %}
port: 80
[root@server2 pillar]# cat top.sls
base:
'*':
- web
[root@server2 pillar]# salt '*' pillar.items
server4:
----------
port:
80
webserver:
nginx
server3:
----------
port:
80
webserver:
httpd
- pillar数据匹配
[root@server2 apache]# pwd
/srv/salt/apache
[root@server2 apache]# cat init.sls
apache:
pkg.installed:
- pkgs:
- {{ pillar['webserver'] }} # 匹配pillar中的webserver
service.running:
- name: httpd
- reload: true
- enable: true
- watch:
- file: /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://apache/httpd.conf
[root@server2 apache]# salt server3 state.sls apache
server3:
----------
ID: apache
Function: pkg.installed
Result: True
Comment: All specified packages a