標籤:saltstack
Grains是saltstack記錄minion靜態資訊的一個組件,我們可以簡單地理解為Grains裡面記錄著每台Minion的一些常用屬性,比如CPU、記憶體、磁碟、網路資訊等,我們可以通過grains.items查看某台Minion的所有Grains資訊,Minions的Grains資訊是Minions啟動的時候採集彙報給Master的,在實際應用環境中我們需要根據自己的業務需求去自訂一些Grains。
定義minion有三種方式:
minion端通過設定檔定義
minion端通過模組定義
Python通過模板定義
Grains簡單的命令用法
salt ‘minion1‘ sys.list_functions grains
minion1:
- grains.append
- grains.delval
- grains.filter_by
- grains.get
- grains.get_or_set_hash
- grains.has_value
- grains.item
- grains.items
- grains.ls
- grains.remove
- grains.setval
- grains.setvals
grains有如上方法,詳細用法可以通過命令查看
salt ‘minion1‘ sys.doc grains
-----------------------------------------------------------------------
minion通過設定檔定義,這種方法很簡單就是修改minion的設定檔
vim /etc/salt/minion,注釋部分有這麼一段
#grains:
# roles:
# - webserver
# - memcache
# deployment: datacenter4
# cabinet: 13
# cab_u: 14-15
為了統一控制grains可以將資訊集中寫到檔案中
grains可以按照這種YAML格式進行修改和定義
/etc/salt/grains
grains:
roles:
- webserver
- memcache
deployment: datacenter4
cabinet: 13
cab_u: 14-15
重啟minion使之生效
salt ‘minion1‘ grains.item grains:roles
minion1:
----------
grains:roles:
- webserver
- memcache
--------------------------------------------------------------------------------
通過Grains模組定義Grains
salt ‘minion1‘ grains.append saltbook ‘verycool‘
minion1:
----------
saltbook:
- verycool
[[email protected] apache]# salt ‘minion1‘ grains.item saltbook
minion1:
----------
saltbook:
- verycool
可以使用grains.setvals同時設定多對Grains資訊
salt ‘minion1‘ grains.setvals "{‘salt‘:‘good‘,‘book‘:‘cool‘}"
minion1:
----------
book:
cool
salt:
good
[[email protected] apache]# salt ‘minion1‘ grains.item salt
minion1:
----------
salt:
good
[[email protected] apache]# salt ‘minion1‘ grains.item book
minion1:
----------
book:
cool
當然也支援刪除Grains資訊,更多用法可以通過sys.doc grains命令查詢
----------------------------------------------------------------------------
使用Python指令碼方式添加grains方法我們後續再說
本文出自 “八英裡” 部落格,謝絕轉載!
saltstack學習筆記4-Grains