【SaltStack】SaltStack数据系统Grains详解
Grains是SaltStack的一个组件,存放在SaltStack的minion端,当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion发生过重启时才会进行数据的更新
Grains应用场景1——信息查询(用于查询minion端的IP信息、FQDN信息等)
首先看看SaltStack默认支持的Granis有哪些,使用以下命令:
salt '*' grains.ls
执行命令后可以看到如下图一样会列出许多选项,只不过这里只是列出默认的Grains选项,但并没有返回需要的值(其中三个箭头所指的分别是fqdn名、IP地址、系统信息,其他选项通过名字大概也能看出意义)
如果需要看到每项的值怎么办呢?执行以下命令即可
salt '*' grains.items
执行后可以看到每一个item都取到了值
如果需要对单项item取值的话,只需要指定那项item即可。如要取得所有minion端的IP,执行以下命令:
[root@ns-master-c01 salt]# salt '*' grains.item ipv4 ns-master-c01.novalocal: ---------- ipv4: - 127.0.0.1 - 172.16.0.21
Grains应用场景2——匹配minion(如想要在系统为CentOS的minion中执行一条命令)
salt -G os:CentOS cmd.run 'w' #-G是指使用Grains来进行匹配,os是Grains众多item中的一项
执行结果如下:
自定义Grains的Item
Grains除了自带一些item外,还可以自定义需要的item。比如我们可以给部分minion定义一个Nginx的item作为标签,然后对含有这些标签的minion进行Nginx的安装。步骤如下:
1、编辑minion配置文件,找到grains开头的内容,取消注释,增加需要的内容
grains: #取消这些行的注释 roles: - webserver #系统默认,这里保留用于参考 - memcache #同上 - nginx #自定义一个nginx标签
2、重启minion,否则minion数据不会更新
3、进行一个匹配测试,注意这里salt不需要再用'*'来指定minion
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论