本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告

SaltStack数据系统Grains详解

发布:TangLu2015-11-18 15:36分类: 自动化运维 标签: saltstack salt-stack grains

Grains是SaltStack的一个组件,存放在SaltStack的minion端,当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion发生过重启时才会进行数据的更新

 

Grains应用场景1——信息查询(用于查询minion端的IP信息、FQDN信息等)

首先看看SaltStack默认支持的Granis有哪些,使用以下命令:

salt '*' grains.ls 

执行命令后可以看到如下图一样会列出许多选项,只不过这里只是列出默认的Grains选项,但并没有返回需要的值(其中三个箭头所指的分别是fqdn名、IP地址、系统信息,其他选项通过名字大概也能看出意义)

grains1.jpg

如果需要看到每项的值怎么办呢?执行以下命令即可

salt '*' grains.items


执行后可以看到每一个item都取到了值

grains2.jpg

 

如果需要对单项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中的一项 

执行结果如下:

grains3.jpg 

 

自定义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

grains4.jpg

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《SaltStack数据系统Grains详解
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-257.html  [生成短网址]

已有 0/2058 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~