【SaltStack】数据系统Grains详解
Grains是SaltStack当中的一个数据系统,当Minion启动时Grains会把Minion的数据收集起来,比如操作系统版本、CPU 位数等。由于采用的是静态收集,只有当Minion发生重启时数据才会发生变化,在Grains的实际运用中常用于对多台Minion做操作时进行一些条件匹配,比如有上百台Minion服务器,只需要对操作系统为CentOS的做一些操作等,下面是一些用法:
salt '*' grains.items #罗列出所有Minion的所有信息
命令执行后可以看到出现了很多信息,我们可以用这些信息来作为一些过滤条件
通过Grains信息来做过滤,使用-G选项:
salt -G 'os:CentOS' cmd.run 'uptime' #在所有CentOS系统上执行uptime salt -G 'cpuarch:x86_64' cmd.run 'uptime' #在所有64位CPU服务器闪执行
执行后反馈效果如图:
如果grains.items里的模块不满足我们当前情况,还可以自定义Grains,比如添加一个Nginx模块,方法如下:
vim /etc/salt/minion #编辑minion配置文件,在末尾加入以下内容: grains: web: nginx #冒号后面必须有空格 service salt-minion restart #重启minion
现在执行salt '*' grains.items可以看到定义的信息已经可以被看到。这个时候在Master端执行salt -G 'web:nginx' test.ping会发现刚才编辑过Minion配置文件的服务器也能被匹配出来,而其他没有做相应操作的服务器则不会显示,生产环境中我们可以对装有Nginx的服务器批量进行重启等
salt -G 'web:nginx' cmd.run 'service nginx restart'
如果不想把上一步的信息编辑在/etc/salt/minion文件中,还可以创建/etc/salt/grains文件,然后对其编辑,方法如下:
vim /etc/salt/grains cloud: openstack
因为grains是静态收集信息,这个时候不重启minion的话Grains是不会生效的,所以这个时候使用-G是看不到信息的,可以在Master执行一个模块刷新
Grains salt '*' saltutil.sync_grains
现在已经可以看到添加的信息了
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论