SaltStack擴展組件

1、擴展Grainspython

    雖然Grains能收集到Minion的各類靜態信息,可是爲了知足更加複雜的應用,但願Grains能根據咱們的需求去採集一些信息,例如大批量機器中咱們區分每臺設備的業務角色,這個時候咱們就能夠本身定義一個Grains,讓Minion經過外部數據(CMDB)去採集本身的業務彙報給Master。在大規模的配置中,咱們就能夠利用這個Grains值去更佳方便地管理配置各個角色的設備。shell

    1.擴展Grains流程code

    第一步,咱們須要在Master上編寫一個Python腳本。這個腳本的主要內容就是去定義如何收集你想要的信息,在腳本的最後把採集到的各類信息返回。cmd

    第二步,須要把這個腳本sync同步到全部的Minion上。同步

    第三步,重啓Minion服務,由於sync同步grains腳本的時候minion就會去採集刷新Grains。string

[root@salt-master-1 ~]# cat /srv/salt/_grains/example.py
#!/usr/bin/env python
def grains():
    local = {}
    test = { 'key1': 'value1', 'key2': 'value2', 'key3': 'value3' }
    local['list'] = [1,2,3,4]
    local['string'] = 'str'
    local['dict'] = test
    return local

   把這個腳本同步到Minion上去:
it

[root@salt-master-1 salt]# salt 'salt-minion-1' saltutil.sync_grains
#
[root@salt-master-1 salt]# salt 'salt-minion-1' cmd.run 'ls /var/cache/salt/minion/extmods/grains/'
#
[root@salt-master-1 salt]# salt 'salt-minion-1' grains.item list
相關文章
相關標籤/搜索