salt 基本組建之 grains,pillars(整理中)

grains

minion基本信息的管理html

基本使用:

<pre> salt '*' grains.ls 查看grains分類 salt '*' grains.items 查看grains全部信息 salt '*' grains.item osrelease 查看grains某個信息 </pre>web

自定義grains信息

Grains 信息能夠在 minion 配置文件 /etc/salt/minion 中靜態定義,自定義的 grains 能夠將 Core grains 定義的信息覆蓋,示例以下:ide

<pre> grains: roles: - webserver - memcache deployment: datacenter4 cabinet: 13 cab_u: 14-15 </pre>ui

若是不但願將配置信息定義在 /etc/salt/minion 能夠將配置信息寫入 /etc/salt/grains,示例以下:lua

<pre> roles: - webserver - memcache deployment: datacenter4 cabinet: 13 cab_u: 14-15 </pre>server

重啓 salt-minion 服務後,在 salt 'host' grains.items 能夠查看自定義的信息是否生效,下面有幾種自定義grains的方式,若是這些定義方式同時存在,則遵照以下由低到高的優先級:htm

  1. Core grains.
  2. Custom grains in /etc/salt/grains.
  3. Custom grains in /etc/salt/minion.
  4. Custom grain modules in _grains directory, synced to minions.

Each successive evaluation overrides the previous ones, so any grains defined in /etc/salt/grains that have the same name as a core grain will override that core grain. Similarly, /etc/salt/minion overrides both core grains and grains set in /etc/salt/grains, and custom grain modules will override any grains of the same name文檔

<pre> salt '*' grains.item osrelease minoin1: osrelease: 6.2 </pre>get

在用salt進行管理客戶端的時候或者寫state的時候均可以引用grains的變量同步

文檔:http://docs.saltstack.com/topics/targeting/grains.html

pillar

salt敏感信息的管理,只有匹配到的節點才能看到和使用

<pre> salt '*' pillar.items </pre>

文檔:http://docs.saltstack.com/topics/tutorials/pillar.html

開啓敏感信息配置管理 Pillar settings

編輯 /etc/salt/master 文件

<pre> pillar_roots: base: - /srv/pillar </pre>

mkdir -p /srv/pillar

默認:pillar數據定義文件存儲路徑:/srv/pillar

入口文件:/srv/pillar/top.sls

<pre> base: "targeting": - pillar #名字爲pillar.sls的文件來存放對匹配到的minion的變量 </pre>

$pillar.sls

<pre> #基本: $key: $value #對應state引用方式: {{ pillar['$key'] }} #複雜: users: thatch: 1000 shouse: 1001 utahdave: 1002 redbeard: 1003 #state引用方式: #{% for user, uid in pillar.get('users', {}).items() %} # {{user}}: # user.present: # - uid: {{uid}} #{% endfor %} </pre>

查看節點的pillar數據:

<pre> salt 'client2' pillar.data </pre>

同步pillar:

<pre> salt '*' saltutil.refresh_pillar </pre>

附:這裏咱們能夠看到,pallar中也能夠使用jinja

文檔:http://docs.saltstack.com/topics/tutorials/pillar.html

相關文章
相關標籤/搜索