saltstack之grains
阿新 • • 發佈:2018-11-20
有關grains在http://blog.51cto.com/12107790/2317369已經簡單介紹過,官方文件介紹的也很少。
grains是描述minion的靜態資料,資料包括系統執行狀態、cpu資訊、網路資訊。可以自行設定grains來為minions進行分組和管理。
grains是在minions啟動時載入並快取在記憶體中。
列出minion的grains項
[[email protected] salt]# salt '136' grains.ls 136: - SSDs - cpu_flags - cpu_model - cpuarch - domain - edit
列出minion的grains項和值
[[email protected] salt]# salt '136' grains.items 136: ---------- cpu_model: Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz cpuarch: x86_64 domain: edit:
列出minion的grains指定專案的值
[[email protected] salt]# salt '136' grains.item init 136: ---------- init: upstart [[email protected] salt]#
自定義grains項方法
1.在minion的配置檔案中定義/etc/salt/minion。不建議使用。
2.將自定義的grains寫入minions端 /etc/salt/grains檔案中,獨立儲存便於查詢,通過grains模組編寫grains。
編寫grains資料項和值
單個數據項和值 [[email protected] salt]# salt '136' grains.setval my_grain bar 136: ---------- my_grain: bar 多個數據項和值 [[email protected] salt]# salt '136' grains.setvals "{'key1':'var1','key2':'var2'}" 136: ---------- key1: var1 key2: var2 單個數據項和多個值 [[email protected] salt]# salt '136' grains.setval my_grain_dict '["one","two","three"]' 136: ---------- my_grain_dict: - one - two - three master端查詢 [[email protected] salt]# salt '136' grains.item my_grain_dict 136: ---------- my_grain_dict: - one - two - three [[email protected] salt]# minion端查詢 [[email protected] ~]# cat /etc/salt/grains edit: yan env: test key1: var1 key2: var2 my_grain: bar my_grain_dict: - one - two - three role: nginx test: test 刪除grains專案和值 [[email protected] salt]# salt '136' grains.delval my_grain_dict 136: None [[email protected] salt]# 查詢 [[email protected] ~]# cat /etc/salt/grains edit: yang env: test key1: var1 key2: var2 my_grain: bar my_grain_dict: null role: nginx test: test [[email protected] ~]#