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'] }}