jfgdf 发表于 2017-3-13 13:43:53

运维工具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需要新创建该目录

1
# mkdir /srv/pillar




        2.修改salt的Master主配置文件(/etc/salt/master),新增如下内容,并且需要重启Master服务:

1
2
3
4
pillar_roots:
base:
    - /srv/pillar
# systemctl restart salt-master.service




        注意:yaml格式问题: 和 - 后有空格,小心缩进!!!!!!!!

        3.在/srv/pillar目录下新建top.sls(入口文件),如:

1
2
3
4
# cat /srv/pillar/top.sls
base:
'*':
    - test #指data.sls文件




        注:'*'代表任意主机,- test 指包含一个test.sls文件.top.sls引用时可用两种方法:文件放在同级;二是在pillar目录下创建test目录,在该目录下创建init.sls文件。

        4.在/srv/pillar目录下新建test.sls,内容如下:

1
2
3
4
# cat test.sls
httpd:
pkg: httpd
version: 2.4





        5.刷新Minion端主机的pillar信息,检查test.sls数据项mysql

1
2
3
4
5
6
7
8
9
10
11
12
# 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                #内存中获取


6238175 发表于 2017-3-13 13:53:44

【Linux系统调优】
页: [1]
查看完整版本: 运维工具SaltStack之四Pillar组件