最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 系统运维 >
grains 入门有哪些内容?
linuxe发表于 2020-10-29 15:22 次浏览
前面的文章我们讲解过salt 里面的pillar ,接下来要分析的就是salt 里面另外一个数据系统 grains。
grains 是minion 端获取客户端本地相关信息,在每次 minion 启动的时候获取一次,可以理解为静态信息,像 ip,主机名,CPU等等信息都会获取。

由于采用的是静态收集,只有当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

因为grains是静态收集信息,这个时候不重启minion的话Grains是不会生效的,所以这个时候使用-G是看不到信息的,可以在Master执行一个模块刷新

 

 

1 Grains salt '*' saltutil.sync_grains

 

现在已经可以看到添加的信息了


标签:saltstack 管理
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐
2020-10-28 11:29:41 关键词:saltstack 管理
摘要:前边针对Saltstack进行了大量基础知识以及组件 、方法和Pillar方面的介绍,下边针对实际安装案例lamp安装做一个笔记。该笔记主要是lamp一个环境的安装实例,引入了ID声明和Names声明,以..