ABKYH 发表于 2018-7-31 10:10:25

运维工具SaltStack之四Pillar组件

  运维工具SaltStack之四Pillar组件
  一、pillar组件介绍
  跟grains的结构一样,存放需要提供给Minion端的信息,存储在master端。可根据各个机器环境的不同,分别定义变量,然后再sls文件里统一引用,官方表示pillar是存储敏感数据的,主要解决环境的差异性。同时与grains组件还有一个特别的区别:grains数据加载在内存里,即minion启动之后不会变,哪怕修改了grains,除非重启minion或者从master端同步。而pillar修改之后,再获取数据即生效了。
  注;pillar是存放在master端,默认位置/srv/pillar,需要新建目录。和salt sls类似,也是需要top.sls
  二、pillar组件自定义
  1.使用默认的Master的pillar_roots配置路径 /srv/pillar需要新创建该目录
# mkdir /srv/pillar  2.修改salt的Master主配置文件(/etc/salt/master),新增如下内容,并且需要重启Master服务:
pillar_roots:  
base:
  
    - /srv/pillar
  
# systemctl restart salt-master.service
  注意:yaml格式问题: 和 - 后有空格,小心缩进!!!!!!!!
  3.在/srv/pillar目录下新建top.sls(入口文件),如:
# cat /srv/pillar/top.sls  
base:
  
'*':
  
    - test #指data.sls文件
  注:'*'代表任意主机,- test 指包含一个test.sls文件.top.sls引用时可用两种方法:文件放在同级;二是在pillar目录下创建test目录,在该目录下创建init.sls文件。
  4.在/srv/pillar目录下新建test.sls,内容如下:
# cat test.sls  
httpd:
  
pkg: httpd
  
version: 2.4
  5.刷新Minion端主机的pillar信息,检查test.sls数据项mysql
# salt '*' saltutil.refresh_pillar  
minion01:
  
    True
  
# salt 'minion01' pillar.items
  
minion01:
  
    ----------
  
    httpd:
  
      ----------
  
      pkg:
  
            httpd
  
      version:
  
            2.4
  6.常见pillar命令
  salt '*' sys.doc pillar            #查看与pillar有关的帮助信息
  salt '*' pillar.items            #获取所有pillar items值
  salt '*' pillar.data               #等价于pillar.items
  salt '*' saltutil.refresh_pillar   #刷新pillar值
  salt '*' saltutil.sync_all         #刷新pillar值,与refresh_pillar操作类似,但范围更大
  salt '*' sys.list_functions pillar #列出所有的pillar相关函数方法
  salt '*' pillar.get xxx            #获取某项的值
  salt '*' pillar.raw                #内存中获取
页: [1]
查看完整版本: 运维工具SaltStack之四Pillar组件