Saltstack之pillar组件

简介:

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

网上的解析:

pillar:

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

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


1
2
3
4
5
6
7
8
9
10
定义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 %}
1
2
3
4
vim  /srv/pillar/base/top .sls:
base:
   '*' :
     - pkg
1
2
3
4
5
使用pillar获取相应系统的apache值
vim  /srv/salt/apache/init .sls:
apache:
   pkg.installed:
     - name: {{ pillar[ 'pkgs' ][ 'apache' ] }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
直接执行刚刚写好的apache目录下的sls将会自动安装httpd,由于centos6属于redhat家族的分支,a
apahce的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:     1
Total run  time :  25.318 s




本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1878904

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
Linux Apache 开发工具
|
Web App开发 应用服务中间件 Shell