由于采用的是静态收集,只有当Minion发生重启时数据才会发生变化,在Grains的实际运用中常用于对多台Minion做操作时进行一些条件匹配,比如有上百台Minion服务器,只需要对操作系统为CentOS的做一些操作等,下面是一些用法:
1 | salt '*' grains.items #罗列出所有Minion的所有信息 |
命令执行后可以看到出现了很多信息,我们可以用这些信息来作为一些过滤条件
通过Grains信息来做过滤,使用-G选项:
1 | salt -G 'os:CentOS' cmd.run 'uptime' #在所有CentOS系统上执行uptime |
2 | salt -G 'cpuarch:x86_64' cmd.run 'uptime' #在所有64位CPU服务器闪执行 |
执行后反馈效果如图:
如果grains.items里的模块不满足我们当前情况,还可以自定义Grains,比如添加一个Nginx模块,方法如下:
1 | vim /etc/salt/minion #编辑minion配置文件,在末尾加入以下内容: |
2 | grains: web: nginx #冒号后面必须有空格 |
3 |
4 | service salt-minion restart #重启minion |
现在执行salt '*' grains.items可以看到定义的信息已经可以被看到。这个时候在Master端执行salt -G 'web:nginx' test.ping会发现刚才编辑过Minion配置文件的服务器也能被匹配出来,而其他没有做相应操作的服务器则不会显示,生产环境中我们可以对装有Nginx的服务器批量进行重启等
1 | salt -G 'web:nginx' cmd.run 'service nginx restart' |
如果不想把上一步的信息编辑在/etc/salt/minion文件中,还可以创建/etc/salt/grains文件,然后对其编辑,方法如下:
1 | vim /etc/salt/grains |
2 | cloud: openstack |
1 | Grains salt '*' saltutil.sync_grains |
现在已经可以看到添加的信息了
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2018 群英 版权所有 茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号-36 粤公网安备 44090202000006号 粤工商备P091701000595