Saltstack之pillar组件

我看了很久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家族的分支,a
apahce的value是httpd。
[[email protected] 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
时间: 2024-10-18 22:51:21

Saltstack之pillar组件的相关文章

运维工具SaltStack之四Pillar组件

运维工具SaltStack之四Pillar组件 一.pillar组件介绍 跟grains的结构一样,存放需要提供给Minion端的信息,存储在master端.可根据各个机器环境的不同,分别定义变量,然后再sls文件里统一引用,官方表示pillar是存储敏感数据的,主要解决环境的差异性.同时与grains组件还有一个特别的区别:grains数据加载在内存里,即minion启动之后不会变,哪怕修改了grains,除非重启minion或者从master端同步.而pillar修改之后,再获取数据即生效了

Saltstack系列5:Saltstack之pillar组件

pillar组件 pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等. 在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主机只能看到自己匹配的数据,因此pillar安全性很高,适用于一些比较敏感的数据,这也是区别于grains最关键的一点,如定义不同业务组主机的用户id.组id.读写权限.程序包等信息,定义的规范是采用Python字典形式,即键/值,最上层的键一般为主机的id

Saltstack的pillar组件(6)

pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等.在pillar中定义的数据与不同业务特性的minion相关联,这样不同的minion只能看到自己匹配的数据,因此pillar安全性很高,适用于一些比较敏感的数据,这也是区别grains最关键的一点,如定义不同业务主机的用户id.组id.读写权限.程序包等信息,定义规范是采用Python字典形式,key/value,最上层的key一般为主机的id或

Saltstack pillar组件

 pillar组件 pillar也是Saltstack最重要的组件之一,其作用是定义与被控主机相关的任何数据,定义好的数据可以被其他组件使用,如模板.state.API等.在pillar中定义的数据与不同业务特性的被控主机相关联,这样不同被控主机只能看到自己匹配的数据,因此pillar安全性很高,适用于一些比较敏感的数据,这也是区别于grains最关键的一点,如定义不同业务组主机的用户ID.组ID.读写权限.程序包等信息,定义的规范是采用python字典形式,即键/值,最上层的键一般为主机的ID

运维工具SaltStack之三Grains组件

运维工具SaltStack之三Grains组件 一.grains组件介绍 grains是收集Minion主机的静态.不常变化的基本信息,存储在Minion端本地,如:CPU.内核.操作系统.虚拟化等,并且服务器端可以根据这些信息进行灵活定制或个性化定制,是Saltstack最重要的组件之一,多用来做资产管理的信息收集,主要解决平台的差异性. 如可以使用以下命令: #salt 'minion01' grains.items  #获取minion01主机基本信息 二.grains组件自定义 自定义g

Saltstack中Pillar那点事

Salt中Pillar那点事 基本简介 在 SaltStack 中, Pillar作为定义minion全局数据的接口. 默认存储在master端, Minion启动时会连接master获取最新的pillar数据. Pillar使用类似于State Tree的结构, 默认使用 YAML 作为其描述格式, 在Minion内部最终转换成 Python字典 . 那么在Salt内部, Pillar是如何工作的? 在哪些情况下,需要先执行刷新Pillar操作? 而哪些又不需要? 本文基于 Salt 2014

菜鸟玩云计算之廿一: saltstack之pillar

菜鸟玩云计算之廿一: saltstack之pillar 参考: 点击打开链接 查看pillar数据: # salt '*' pillar.items pillar的默认根目录在:/srv/pillar,可以通过下面的参数更改配置文件/etc/salt/master: pillar_roots: your_dir 建立下面的pillar根目录,并创建入口文件: top.sls # mkdir /srv/pillar # vi /srv/pillar/top.sls top.sls: base: '

Saltstack之Grains组件

参考:刘天斯<Python自动化运维技术与最佳实践> grains是Saltstack最重要的组件之一,grains的作用是收集被控主机的基本信息,这些信息通常都是一些静态类的数据,包括CPU.内核.操作系统.虚拟化等,在服务器端可以根据这些信息进行灵活定制,管理员可以利用这些信息对不同业务进行个性化定制. 获取所有主机的grains项信息,发现没有max_openfile,等会我们手动编写一个. [[email protected] base]# salt '*' grains.ls sal

saltstack之pillar详解

什么是Pillar Pillar是在salt 0.9.8版本后才添加的功能组件.它跟grains的结构一样,也是一个字典格式,数据通过key/value的格式进行存储.在Salt的设计中,Pillar使用独立的加密sessiion,所以Pillar可以用来传递敏感的数据,例如ssh-key,加密证书等. 存储位置:存储在master端存放需要提供给minion的信息 应用场景: 敏感信息:每个minion只能访问master分配给自己的信息 查看Pillar salt ‘node23.com’