salt-stack的數據系統Grains

Grains: 靜態數據 當Minion啓動的時候收集的Minion本地的相關信息(操做系統版本,內核版本,cpu,內存,硬盤)python

做用:資產管理、信息查詢、目標選擇、配置管理中使用vim

[root@salt-master ~]# salt 'salt-master' grains.ls     //列出全部的grains的key

[root@salt-master ~]# salt 'salt-master' grains.items     //顯示全部的item信息,也是資產信息

[root@salt-master ~]# salt -G 'os:CentOS' cmd.run 'echo test'    //使用grains進行匹配

salt-master:
    test
salt-minion:
    test


例一、自定義grains

[root@salt-minion ~]# vim /etc/salt/grains      //每次minion會讀取該文件,格式爲鍵值對

cloud: openstack

[root@salt-minion ~]# salt '*' saltutil.sync_grains     //刷新Grains ,新添加自定義的後須要刷新才能讀取

[root@salt-master ~]#  salt '*' grains.item cloud
salt-minion:
    ----------
    cloud:
        openstack
salt-master:
    ----------
    cloud:

  例二、開寫一個python腳本,返回一個字典bash

[root@salt-master /srv/salt]# mkdir _grains   //自定開發的grains存放路徑

[root@salt-master /srv/salt]#cd _grains  

[root@salt-master /srv/salt]# cat my_grains.py 
#!/usr/bin/env python
#coding=utf-8

def my_grains():
    #初始化一個字典
    grains = {}
    #設置字典中的key-value
    grains['iaas'] = 'openstack'
    grains['pass'] = 'aliyun'
    return grains

[root@salt-master ~]# salt '*' saltutil.sync_grains     //刷新,將文件推送到minion上
salt-master:
    - grains.my_grains
salt-minion:
    - grains.my_grains

[root@salt-minion salt]# pwd        //存放master推送過來的grains
/var/cache/salt

Grains優先級:
1)系統自帶
2)grains文件寫的
3)minion配置文件寫的
4)本身寫的
相關文章
相關標籤/搜索