saltstack之pillar

grains存储于minion端,主要是minion在启动时收集系统信息发送至master,可以自定义。
pillar存储于master端,此类数据加密,

举例:

/etc/salt/master配置:
pillar_roots:
  base:
    - /srv/pillar/base
  prod:
    - /srv/pillar/prod
# 定义了base环境与prod环境所使用不同pillar属性值

编排stats目录:

[root@node2 pillar]# pwd
/srv/pillar
[root@node2 pillar]# tree
    ├── base
    │   ├── ceshi
    │   │   └── init.sls
    │   └── top.sls
    └── prod
      ├── rabbitmq
      │   └── init.sls
    └── top.sls
#  设置base属性,
[root@node2 pillar]# cat base/top.sls 
base:
  '*':
    - ceshi
[root@node2 pillar]# cat base/ceshi/init.sls 
os1:
  osnum: 1

#  设置prod属性,
[root@node2 pillar]# cat prod/top.sls 
prod:
   '*':
     - rabbitmq
[root@node2 pillar]# cat prod/rabbitmq/init.sls 
os2:
  osnum: 2

在设置属性值时可以根据grains值来进行判断之后在设置,非常灵活。

# 例子:
pkgs:
  {% if grains['os'] == 'CentOS' %}
  apache: httpd
  git: git
  {% elif grains['os'] == 'SUSE' %}
  apache: apache2
  git: git-core
  {% endif %}

更新pillar属性:

# salt '*' saltutil.refresh_pillar

查看pillar定义属性是否生效:

# salt '*' pillar.items os1
# salt '*' pillar.items os2

你可能感兴趣的:(saltstack之pillar)