什么是Pillar
Pillar是在salt 0.9.8版本后才添加的功能组件。它跟grains的结构一样,也是一个字典格式,数据通过key/value的格式进行存储。在Salt的设计中,Pillar使用独立的加密sessiion,所以Pillar可以用来传递敏感的数据,例如ssh-key,加密证书等。
存储位置:
存储在master端存放需要提供给minion的信息应用场景:
敏感信息:每个minion只能访问master分配给自己的信息
查看Pillar
salt ‘node23.com’ pillar.items
自定义Pillar
vim /etc/salt/masterpillar_roots: base: - /srv/salt/pillarmkdir -pv /srv/salt/pillarvim zabbix.sls zabbix-server: 192.168.0.23vim nginx.slsnginx: HOST: { { grains['ipv4'][1] }} PORT: 8081#指定Pillar到某个机器vim top.sls base: 'node23.com': - nginx - zabbix/etc/init.d/salt-master restart
使用Pillar
查看自定义Pillar
# salt 'node23.com' pillar.itemsnode23.com: ---------- nginx: ---------- HOST: 192.168.0.23 PORT: 8081 zabbix-server: 192.168.0.23
1.命令行中使用-I
# salt -I 'nginx:PORT:8081' cmd.run 'uptime' node23.com: 19:53:27 up 3 days, 13:13, 2 users, load average: 0.09, 0.10, 0.03# salt -I 'zabbix-server:192.168.0.23' cmd.run 'uptime' node23.com: 20:08:47 up 3 days, 13:29, 2 users, load average: 0.51, 0.26, 0.14
如果出现 Minion did not return. [No response] 错误请执行
salt '*' saltutil.refresh_pillar #刷新一下pillar
2.SLS文件中使用
cat pillar/memcached.sls memcached: memcached# cat mc/memcached_installed.sls memcached_installed: pkg.installed: - name: { { pillar['memcached'] }}
grain和pillar区别
1.grains存储的是静态、不常变化的内容,pillar则相反
2.grains是存储在minion本地,而pillar存储在master本地3.minion有权限操作自己的grains值,如增加、删除,但minion只能查看自己的pillar,无权修改