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分发到节点
本文详细介绍了SaltStack中的Grains和Pillar概念。Grains为系统级变量,Pillar则为用户自定义变量。文章还讲解了如何通过Salt命令匹配特定系统属性的主机及在Master端获取Grains信息的方法。
722

被折叠的 条评论
为什么被折叠?



