我看了很久pillar这个组件,搜索了不少,还不是很明白这组件的作用,大概我了解到,pillar这个组件比较灵活,可以自己定义minion的信息,还可以结合jinjia。

网上的解析:

pillar:

    salt一个非常重要的组件,它用于给特定的minion定义任何你需要的数据(数据是动态的),这些数据可以被Salt的其他组件(如:state)使用

    可以根据需求自定义pillar变量,如:用户和uid相关的变量,操作系统与软件包相关的变量等等;在pillar中定义变量,每个变量对应一个值,就像python中的字典一样,一个键对应一个值,我们可以通过指定自定义的pillar变量名,来获取pillar变量对应的值{

{ pillar['key']['key'] }} ,pillar里面也有类似嵌套.

定义pillar文件vim /srv/pillar/base/pkg/init.sls:pkgs:  {% if grains['os_family'] == 'RedHat' %}  apache: httpd  vim: vim-enhanced  {% elif grains['os_family'] == 'Debian' %}  apache: apache2  vim: vim  {% elif grains['os'] == 'Arch' %}  apache: apache  vim: vim  {% endif %}
vim /srv/pillar/base/top.sls:base:  '*':    - pkg
使用pillar获取相应系统的apache值vim /srv/salt/apache/init.sls:apache:  pkg.installed:    - name: {
{ pillar['pkgs']['apache'] }}
直接执行刚刚写好的apache目录下的sls将会自动安装httpd,由于centos6属于redhat家族的分支,aapahce的value是httpd。[root@salt-master base]# salt 'salt-minion01' state.sls apache salt-minion01:----------          ID: apache    Function: pkg.installed        Name: httpd      Result: True     Comment: The following packages were installed/updated: httpd     Started: 15:22:35.860220    Duration: 25318.05 ms     Changes:                 ----------              apr:                  ----------                  new:                      1.3.9-5.el6_2                  old:              apr-util:                  ----------                  new:                      1.3.9-3.el6_0.1                  old:              apr-util-ldap:                  ----------                  new:                      1.3.9-3.el6_0.1                  old:              httpd:                  ----------                  new:                      2.2.15-55.el6.centos.2                  old:              httpd-tools:                  ----------                  new:                      2.2.15-55.el6.centos.2                  old:              mailcap:                  ----------                  new:                      2.1.31-2.el6                  old:Summary for salt-minion01------------Succeeded: 1 (changed=1)Failed:    0------------Total states run:     1Total run time:  25.318 s