Grains是Salt的组件,在minion启动时收集信息。
salt '*' grains.ls //查看内容
salt '*' grains.items //查看内容和值
salt '*' grains.get name //查看名为name的grains
可以看到grains中包含了minion的配置信息,比如ip地址、操作系统等。
salt -G os:nginx test.ping
这里使用-G来指定在os值为nginx的target中运行test.ping。由于我们安装的操作系统为ubuntu,所以命令返回为:
No minions matched the target. No command was sent, no jid was assigned.
将os改为Ubuntu:
salt -G os:nginx test.ping
可以得到相应的返回值。
修改top.sls文件为:
base:
'os:Ubuntu'
- match: grain
- nginx
这里使用grains来匹配target,所以必须执行match为grain。
由于Grains是收集的minion的信息,所以自定义Grains需要在minion在进行。
编辑/etc/salt/minion文件,这里将grains注释去掉
grains:
roles:
- webserver
- memcache
重启salt-minion,并运行salt ‘*’ grains.get roles来查看grains。