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)本身寫的