二、Saltstack的数据系统

 
1、Grains
  grains是salt用来收集minion端底层系统信息的接口。好比,操做系统type、域名 、IP地址、内存及其余相关系统属性信息等。存储在minion端,用于保存minion端数据信息。minion启动时才加载grains信息,因此他时静态的,Grains用于minion端信息查询。
经过grains.ls查看grains所支持查询的信息名称:
#salt '*' grains.ls
经过grais.items查看全部grains数据
#salt '*' grains.iterms 
查询指定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信息。
# salt '*' pillar.items
相关文章
相关标签/搜索