Grains和Pillar的用途:
Grains : 用于存储minion的基本数据信息;
Pillar : 用于存储master分配给minion的数据信息。
Grains和Pillar的存储区域:
Grains : 元数据存储在minion端;
Pillar : 元数据存储在master端。
Grains和Pillar的更新方式:
Grains : 在minion启动时进行更新;
Pillar : 元数据存储在master端,使用 saltutil.refresh_pillar进行刷新,效率更高,更为灵活。
当minion启动的时候,将主机所有的信息记录并保存下来
可以用来做匹配,区分不同的机器
如果minion没有重启,grains收集的内容将不会变化
应用场景:
对主机进行匹配,区分不同的机器
配置管理使用,通过ip地址来区分
对主机修改主机名
收集主机的所有基本信息
查看minion端grains的帮助信息
[root@node229 ~]# salt '192.168.2.220' sys.doc grains
显示minion端grains的所有方法:
[root@node229 ~]# salt 192.168.2.220 sys.list_functions grains
192.168.2.220:
- grains.append
- grains.delval
- grains.fetch
- grains.filter_by
- grains.get
- grains.get_or_set_hash
- grains.has_value
- grains.item
- grains.items
- grains.ls
- grains.remove
- grains.set
- grains.setval
- grains.setvals
显示minion端所有grains的内容:
[root@node110 salt]# salt 'minion.saltstack.com'grains.items
minion.saltstack.com:
----------
SSDs:
biosreleasedate:
05/20/2014
biosversion:
6.00
cpu_flags:
- fpu
过滤显示的内容:
[root@node110 salt]# salt 'minion.saltstack.com'grains.item os
minion.saltstack.com:
----------
os:
CentOS
[root@node110 salt]# salt 'minion.saltstack.com'grains.get os
minion.saltstack.com:
CentOS
显示grains的键值对:
[root@node110 salt]# salt 'minion.saltstack.com'grains.ls
minion.saltstack.com:
- SSDs
-biosreleasedate
通过-G来使用以Grains的值来匹配相主机,并在主机上执行命令
-G,--grain Instead of using shellglobs to evaluate the target
use a grain value to identify targets, the syntax for
the target is the grain key followed by a
globexpression: "os:Arch*"
[root@node110 salt]# salt -G 'os:CentOS' test.ping #匹配所有的主机系统是CentOS的主机,并执行命令 test.ping
minion.node2.saltstack.com:
True
minion.saltstack.com:
True
定位对应的机器:
[root@node110 salt]# salt -G 'fqdn:node120' test.ping
minion.saltstack.com:
True