grains是saltstack内置变量,偏向于系统层面,而pillar是用户自定义的更加灵活的变量。
grains不区分大小写
grains用法:
匹配centos节点:
salt -G ‘os:centos’ test.ping
匹配x86_64CPU架构的节点,并查看cpu内核数量:
salt -G ‘cpuarch:x86_64’ grains.item num_cpus
- 查看可用的grains列表:
salt ‘*’ grains.ls
salt ‘*’ grains.items- 查看可用的grains列表:
在节点设置grains(在/srv/salt/minion和/srv/salt/grains中设置均可)
roles: - websever deployment:datacenter4 cabinet: 13 cab_u: 14-15
在master中:
salt[‘grains.get’](‘node_type’,”)
获得节点定义的grains
- 在中心定义grains:
在/srv/salt/_grains目录下添加python脚本:
#!/usr/bin/env python def myfunc(): grains = {} grains['mygrain'] = 'lisa' return grains
注意脚本要以.py结尾否则saltstack检测不到。
state.apply 和saltutil.sync_grains 或 saltutil.sync_all会将定义的grains分发到节点