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,無權修改


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM