saltstack数据系统Pliiar

一、pillar简介

Pillar数据存储在master上。指定的minion只能看到自己的Pillar数据,其他的minion看不到任何Pillar数据,这一点与状态文件正好相反。所有通过认证的minion都可以获取状态文件,但是每个minion却都有自已的一套Pillar数据,而且每台minion的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                //内存中获取

三、自定义pillar

pillar默认目录为/srv/pillar,如果没有需要创建。top.sls文件为入口文件。

[root@29-server]# tree /srv/pillar/
/srv/pillar/
├── test.sls
└── top.sls

[root@29-server ~]# cat /srv/pillar/top.sls 
base:
  '*':      #匹配miniion
    - test  #pillar内容文件名,无需添加后缀名
    
[root@29-server ~]# cat /srv/pillar/test.sls 
name: wang
role: aaa

[root@29-server pillar]# salt '*' saltutil.refresh_pillar   #刷新pillar,仍然获取不到某项pillar值,重启客户端。
minion-one:
    True
  
[root@29-server ~]# salt '*' pillar.items
minion-one:
    ----------
    name:
        wang
    role:
        aaa

四、使用pillar

1.命令行中使用-I

[root@29-server pillar]# salt -I "role:aaa" cmd.run 'ulimit -n'
minion-one:
    8192
35-server:
    8192

2.SLS文件中使用

cat pillar/memcached.sls 
memcached: memcached

# cat mc/memcached_installed.sls 
memcached_installed:
  pkg.installed:
    - name: {{ pillar['memcached'] }}

猜你喜欢

转载自www.cnblogs.com/wangyajian/p/11586998.html