1、SaltStack 数据系统,Grains和Pillar.
Grains 静态数据
- 当minion启动的时候收集的Minion本地的相关信息。如:操作系统版本,内核版本,cpu,内存,硬盘,设备型号,序列号等。如果不重启,还是之前的数据。
- grains的作用: 1、资产管理,信息查询 2、用于目标的选择,可以选择所有的系统为centos的机器上执行操作等。 3、配置管理中的使用。
1.2、关于grains的一些用法:
查看所有的grains
[root@wyl01 ~]# salt 'wyl02' grains.ls
查看所有grains的item, 根据item查看每一项指标数据。
[root@wyl01 ~]# salt 'wyl02' grains.items
查看具体的某一个值,如系统的版本号。
[root@wyl01 ~]# salt 'wyl02' grains.item os
[root@wyl01 ~]# salt 'wyl02' grains.item osrelease
grains做目标的选择, 选中操作系统版本号为6.5的机器,执行命令。
自定义的一个grains,可以在minion中去定义,也可以写一个配置文件。
第一种:在/etc/salt/minion中配置,配置完后要重启,不重启是获取不到的。
[root@wyl02 minion]# service salt-minion restart #按照上面的修改,修改完重启
# 在wyl01的master机器上去目标匹配这个wyl02机器
[root@wyl01 ~]# salt -G 'roles:webserver' test.ping
wyl02:
True
第二种:写在/etc/salt/grains文件中 minion会自动在这个文件中找。我们在wyl02机器上定义一个。
重启之前我们在wyl01机器上进行目标选择,发现并没有看到name为wyl-02匹配的结果,然后重启后,就看到了。
如果不重启就必须要刷新,不是说非要重启,下面我们修改了wyl03机器上grains文件中的name值,不重启wyl03机器,刷新后的情况如下 也是可以获取到新的item为name了。
在wyl01机器上进行刷新操作,发现也匹配到wyl03机器上的name值了。
[root@wyl01 ~]# salt '*' grains.item name
注意:如果写到minion配置文件中,也可以不用重启,只要刷新,发现也是可以的。。。
我们在/etc/salt/grains中添加roles这一项配置,为roles: apache ,重启后这里会发现只有一个值 ,就是/etc/salt/minion中roles对应的value值, 而不是2个值,原因是minion配置中的优先级高。
top案列:在top文件中设置roles 这样方便统一管理,我们修改top文件,然后进行目标匹配,然后进行安装httpd服务。
开发一个grains,在master端创建一个grains文件,写在哪?怎么写?
1、自己开发的grains存放的位置是base环境下/srv/salt目录下,创建一个目录,然后将开发的grains文件存放在该位置。
2、python写一个grains脚本,返回一个字典。
3、写好,同步到minion机器上,那么同步到minion上在什么位置呢?第二幅图就是存放在minion端的位置。
grains文件推送到minion端的位置如下:
grains 优先级的高低排序依次为:
- 系统自带
- grains文件中写的
- minion配置文件中写的
- 自己写的