saltstack之pillar详解

Posted 西红柿圆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了saltstack之pillar详解相关的知识,希望对你有一定的参考价值。

什么是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/master
pillar_roots:
  base:
    - /srv/salt/pillar

mkdir -pv /srv/salt/pillar

vim zabbix.sls 
zabbix-server: 192.168.0.23

vim nginx.sls
nginx:
  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.items
node23.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,无权修改

以上是关于saltstack之pillar详解的主要内容,如果未能解决你的问题,请参考以下文章

SaltStack实战之数据系统-Pillar

saltstack 之pilla

Saltstack之pillar组件

SaltStack实战之数据系统 Grains VS Pillar

saltstack之grains与pillar

saltstack数据系统之Grains,pillar