Pillar作爲一容許你分發定義的全局數據到目標minion上的接口,Pillar的數據只在匹配的minions上有效。 因此該特性使Pillar經常用於存儲敏感類數據.web
本文經過例子帶你瞭解如何使用和存儲Pillar數據.數據庫
須要在master配置文件中定義pillar_roots,其用來指定Pillar data存儲在哪一個目錄,默認是/srv/pillar.apache
pillar_root:
base:
- /srv/pillar
和State系統同樣,須要先定義一個top.sls文件做爲入口,用來指定數據對哪一個minion有效.app
base:
'*':
- packages
'alpha':
- database
上邊的例子定義了packages對全部的minion有效,database只對名字爲'alpha'的minion有效.spa
經過例子packages文件定義不一樣Linux發行版的軟件包名字,經過Pillar進行中心控制它們,這樣就能夠在State文件中引用Pillar數據使State看起來更簡單.code
{% if grains['os'] == 'RedHat' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
如上,在State文件中將能夠引用Pillar數據,是State更爲簡單.線面是apache.sls State文件例子:orm
apache:
pkg:
- installed
- name: {{ pillar['apache'] }}
另外一個定義Pillar Data的例子是定義服務鏈接數據庫的權限的配置參數:接口
dbname: project
dbuser: username
dbpass: password
dbhost: localhost
// MySQL settings
define('DB_NAME', '{{ pillar['dbname'] }}');
// MySQL database username
define('DB_USER', '{{ pillar['dbuser'] }}');
// MySQL database password
define('DB_PASSWORD', '{{ pillar['dbpass'] }}');
// MySQL hostname
define('DB_HOST', '{{ pillar['dbhost'] }}');
若是想深刻體驗LINUX系統的新手,也能夠先下載一個方德Linux軟件中心試用一下。it
免費下載地址:http://www.nfs-cloud.cn:81/appCenter/open/softcenteio