salt-stack的数据系统Grains
Grains: 静态数据 当Minion启动的时候收集的Minion本地的相关信息(操作系统版本,内核版本,cpu,内存,硬盘)
作用:资产管理、信息查询、目标选择、配置管理中使用
[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 例1、自定义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:
例2、开写一个python脚本,返回一个字典
[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)自己写的
本文为博主原创文章,转载请标注来源。