1、Grains
grains是salt用来收集minion端底层系统信息的接口。好比,操做系统type、域名 、IP地址、内存及其余相关系统属性信息等。存储在minion端,用于保存minion端数据信息。minion启动时才加载grains信息,因此他时静态的,Grains用于minion端信息查询。
经过grains.ls查看grains所支持查询的信息名称:
经过grais.items查看全部grains数据
查询指定grains名称的信息。如查看操做系统类型
方法1.
[root@master salt]# salt '*' grains.item os
kubernetes-master:
----------
os:
CentOS
minion:
----------
os:
CentOS
kubernetes-minion:
----------
os:
CentOS
方法2. get方法
[root@master salt]# salt '*' grains.get os
kubernetes-minion:
CentOS
minion:
CentOS
grains在minion端配置
#vim /etc/salt/minion #指定minion的角色
grains:
roles:
- nginx
若是以为该上面的配置文件也能够直接在/etc/salt/目录下建立一个名为grains的文件。
echo 'roles: nginx'>/etc/salt/grains
(效果与修改/etc/salt/minion的效果相同),角色名 必须是惟一的。修改完成后重启minion端生效
在master端查看:
[root@kubernetes-master salt]# salt '*' grains.get roles
kubernetes-minion:
nginx
数据采集方式:
minion启动时手偶记,也可使用saltutil.sync_grains进行刷新
经过grains来匹配minion
#salt -G roles:nginx cmd.run w
2、Pillar
Pillar是salt用来给minion指定它想要的数据。存储在master端,存放须要提供给minion的信息(动态)。Pillar的配置在master端,其默认是关闭的。
编辑/etc/salt/master配置文件打开pillar_roots的配置
#vim /etc/salt/master
pillar_roots:
base:
- /srv/pillar
应用场景:
- 敏感信息:每一个minion只能访问master分配给本身的pillar信息
- 变量:差别化信息
- 其余任何数据
- 能够在target及state中使用
数据采集方式:
在master端定义,指定给对应的Minion,使用saltutil.refresh_pillar刷新
例:
#cd /srv/pillar
# cat apache.sls
{% if grains['os'] == 'CentOS' %}
apache: https
{% elif grains['os'] == 'Debian' %}
apache: apache2
{% endif %}
# cat top.sls
base:
'*':
- apache
要使用pillar信息,必须刷新pillar
#salt '*' saltutil.refresh_pillar
kubernetes-minion:
True
kubernetes-master:
True
获取定义好的pillar信息。