自動化運維工具 SaltStack(二) grains 和 pillar 模塊的概念及使用

Grains概念

Grains是SaltStack的一個組件,存放在SaltStack的minion端。

當salt-minion啓動時會把收集到的數據靜態存放在Grains當中,只有當minion重啓時纔會進行數據的更新。

由於grains是靜態數據,因此不推薦經常去修改它。

應用場景:

信息查詢,可用作CMDB。
在target中使用,匹配minion。
在state系統中使用,配置管理模塊

信息查詢

用於查詢minion端的IP、FQDN等信息。
默認可用的grains:
# salt '*' grains.ls	
查看每一項的值:
# salt '*' grains.items
取單項的值:
# salt server3 grains.item ipv4
# salt server3 grains.item fqdn

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
2.在這裏插入圖片描述3.在這裏插入圖片描述在這裏插入圖片描述

自定義grains項

/etc/salt/minion中定義:
# vim /etc/salt/minion
grains:
  roles:
    - apache
    - httpd
重啓salt-minion,否則數據不會更新:
# systemctl  restart salt-minion
/etc/salt/grains中定義:
# vim /etc/salt/grains:
deployment:  datacenter1
同步數據:
# salt server3 saltutil.sync_grains
查詢自定義項:
# salt server3 grains.item deployment

1.在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

編寫grains模塊

 在salt-master端創建_grains目錄:
# mkdir /srv/salt/_grains
# vim /srv/salt/_grains/my_grain.py
def my_grain():
    grains = {}
    grains['roles'] = 'nginx'
    grains['hello'] = 'world'
    return grains
# salt '*' saltutil.sync_grains	#同步grains到minion端

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

grains匹配運用

在target中匹配minion:
# salt -G roles:apache cmd.run hostname
在top文件中匹配:
# vim /srv/salt/top.sls
base:
  'roles:apache':
    - match: grain
    - apache.install

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

pillar概念

pillar和grains一樣也是一個數據系統,但是應用場景不同。

pillar是將信息動態的存放在master端,主要存放私密、敏感信息(如用戶名密碼等),而且可以指定某一個minion纔可以看到對應的信息。

pillar更加適合在配置管理中運用。

聲明pillar

定義pillar基礎目錄:
# vim /etc/salt/master
pillar_roots:
  base:
    - /srv/pillar
# mkdir /srv/pillar
重啓salt-master服務:
# /etc/init.d/salt-master restart

在這裏插入圖片描述

自定義pillar項

# vim /srv/pillar/top.sls
base:
  '*':
    - packages
# vim /srv/pillar/apache.sls
{% if grains['fqdn'] == 'server3' %}
package: httpd
{% elif grains['fqdn'] == 'server2' %}
package: mairadb
{% endif %}
刷新pillar數據:
# salt '*' saltutil.refresh_pillar
查詢pillar數據:
# salt '*' pillar.items
# salt '*' grains.item  roles

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

pillar數據匹配(如何使用)

命令行中匹配:
# salt -I 'roles:apache' test.ping
state系統中使用:
# vim /srv/salt/apache.sls
apache:
  pkg.installed:
    - name: {{ pillar['package'] }}

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章