saltstack自动化运维管理——saltstack之pillar

目录

  • 一、pillar简介
  • 二、声明pillar
  • 三、自定义pillar项
  • 四、pillar数据匹配
    • 1、命令行中匹配
    • 2、state系统中使用

一、pillar简介

  • pillar和grains一样也是一个数据系统,但是应用场景不同。
  • pillar是将信息动态的存放在master端,主要存放私密、敏感信息(如用户名密码等,而且可以指定某一个minion才可以看到对应的信息。
  • pillar更加适合在配置管理中运用。

二、声明pillar

  • 定义pillar基础目录:
vim /etc/salt/master
##修改
pillar_roots:
  base:
    - /srv/pillar
mkdir /srv/pillar
  • 重启salt-master服务:
/etc/init.d/salt-master restart

注意:默认目录就是/srv/pillar,可以不用修改配置文件,服务业就不需要重启。

三、自定义pillar项

  • 定义项:
vim /srv/pillar/top.sls
##写入
base:
  '*':
    - packages

vim /srv/pillar/apache.sls
##写入
{% if grains['fqdn'] == 'server3' %}
package: nginx
{% elif grains['fqdn'] == 'server2' %}
package: httpd
{% endif %}

注意: 这里会匹配所有minion,现在只有两台minion,所以endif后面不加参数,否则报错。如果有更多的minion,则需要写。

  • 刷新pillar数据:
salt '*' saltutil.refresh_pillar
  • 查询pillar数据:
salt 'server2' pillar.items package
salt 'server3' pillar.items package

saltstack自动化运维管理——saltstack之pillar_第1张图片
saltstack自动化运维管理——saltstack之pillar_第2张图片

四、pillar数据匹配

1、命令行中匹配

salt -I package:nginx cmd.run hostname

saltstack自动化运维管理——saltstack之pillar_第3张图片

2、state系统中使用

vim /srv/salt/apache/init.sls

saltstack自动化运维管理——saltstack之pillar_第4张图片
saltstack自动化运维管理——saltstack之pillar_第5张图片
在server2上安装了apache,在server3上安装了nginx。

你可能感兴趣的:(saltstack自动化运维管理——saltstack之pillar)