1. 程式人生 > >saltstack之grains

saltstack之grains

有關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] ~]#