1.要启用pillar,首先要修改master中的配置

[root@salt-master pillar]# vim /etc/salt/master
pillar_roots:
  base:
    - /salt/pillar

2.重启master

[root@salt-master pillar]# systemctl restar salt-master

3.是存放在master端,默认位置/srv/pillar,需要新建目录。和salt sls类似,也是需要top.sls

mkdir /srv/pillar

4.在/srv/pillar目录中创建一个top.sls文件

[root@salt-master pillar]# vim top.sls #内容如下:
base:
  'node2.example.com':  #指定的主机
    - sc #调用sc模版中的值 

5.在/srv/pillar中创建一个sc.sls文件

[root@salt-master pillar]# vim sc.sls #内容为键值对,k, v格式的
name: guomaoqiu
age: 22
language: chineses

好啦,此时pillar定义好了

6.执行saltutil.sync_grains #刷新pillar的值

[root@salt-master pillar]# salt 'node2.exmaple.com' saltutil.refresh_pillar

#看下结果:
[root@salt-master pillar]# salt "node2.example.com" pillar.data
node2.example.com:
    ----------
    age:
        22
    language:
        chineses
    name:
        guomaoqiu

7.由上可见在node2这台主机上已经有pillar值啦,只是这个值是保存在master端的;那问题来了,如何使用jinja模板来调用grains或者是pillar的值呢?看下面:

[root@salt-master salt]# pwd
/srv/salt
[root@salt-master salt]# cat top.sls 
base:
  'node2.example.com':
    - test.test
[root@salt-master salt]# cat test/test.sls 
/tmp/test1.conf:
  file.managed:
    - source: salt://test/test1.conf.jinja
    - template: jinja  #调用jinja模板

看一下模板文件:test1.conf.jinja

 该模板文件都调用了grains及pillar的值

8.推到node2上面去:

9.在minion端查看

 看到了红色框住的就是通过调用grains,pillar值生成的。