1、master配置
默认master端的为所有数据都定义到plillar中,而且对所有主机都开放。
可以修改:/etc/salt/master中的pillar_opts的属性来修改。
salt '*' pillar.data
修改为false返回结果:
修改为true返回结果:
可以看到,定义为false时,只显示了对应主机的参数。true时,所有msater端的配置参数都显示到pillar中
2、sls文件定义
(1)配置pillar的主目录:
- 修改/etc/salt/maste中的pillar_roots:参数,定义pillar的主目录,默认为:/srv/pillar
- 创建pillar的主目录:install -d /srv/pillar
(2)定义入口文件,*号代表所有主机
/srv/pillar/top.sls
base: '*': - data
/srv/pillar/data.sls
appname: website flow: maxconn: 30000 maxmem: 6G {% if grains['id'] == 'db_01' %} maxcpu: 8 {% else %} maxcpu: 4 {% endif %}
(3)刷新被控控主机pillar数据
salt '*' saltutil.refresh_pillar
(4)校验
salt '*' pillar.data appname flow
3、使用
(1)通过-I参数,实现主机信息的过滤
salt -I 'appname:website' test.ping
(2)与grains处理数据差异
appname: website flow: maxconn: 30000 maxmem: 6G {% if grains['id'] == 'db_01' %} maxcpu: 8 {% else %} maxcpu: 4 {% endif %}
配置sls文件时,与grains参数组合,写条件判断,如果id时db_01,则maxcpu的值为8,否则为4。整理笔记时,已经进行了这一定义,所以以开始的结果,已经如此显示。