什么是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文件为入口文件。
前面入门博客有介绍,可以查看 pillar介绍
使用Pillar
命令行使用 "-I"
root@King: ~# salt -I "role:aaa" cmd.run 'ulimit -n' # 查看role值是aaa的 salt-minion-1: 65535
SLS文件使用
# cat pillar/memcached.sls memcached: memcached # cat mc/memcached_installed.sls memcached_installed: pkg.installed: - name: {{ pillar['memcached'] }}