使用Saltstack管理用戶

Pillar作爲一容許你分發定義的全局數據到目標minion上的接口,Pillar的數據只在匹配的minions上有效。 因此該特性使Pillar經常用於存儲敏感類數據.web

本文經過例子帶你瞭解如何使用和存儲Pillar數據.數據庫

 

/etc/salt/master- Pillar Roots

須要在master配置文件中定義pillar_roots,其用來指定Pillar data存儲在哪一個目錄,默認是/srv/pillar.apache

pillar_root:
  base:
    - /srv/pillar

 

/srv/pillar/top.sls

和State系統同樣,須要先定義一個top.sls文件做爲入口,用來指定數據對哪一個minion有效.app

base:
  '*':
    - packages
  'alpha':
    - database

上邊的例子定義了packages對全部的minion有效,database只對名字爲'alpha'的minion有效.spa

/srv/pillar/packages.sls- Pillar Data

經過例子packages文件定義不一樣Linux發行版的軟件包名字,經過Pillar進行中心控制它們,這樣就能夠在State文件中引用Pillar數據使State看起來更簡單.code

{% if grains['os'] == 'RedHat' %}
apache: httpd
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
/srv/states/apache.sls- State Data

如上,在State文件中將能夠引用Pillar數據,是State更爲簡單.線面是apache.sls State文件例子:orm

apache:
  pkg:
    - installed
    - name: {{ pillar['apache'] }}

 

/srv/pillar/database.sls- Pillar Data

另外一個定義Pillar Data的例子是定義服務鏈接數據庫的權限的配置參數:接口

dbname: project
dbuser: username
dbpass: password
dbhost: localhost

 

website.conf- template
// 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

相關文章
相關標籤/搜索