Pillar是Salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被Salt的其他组件使用。这里可以看出Pillar的一个特点,Pillar数据是与特定minion关联的,也就是说每一个minion都只能看到自己的数据,所以Pillar可以用来传递敏感数据(在Salt的设计中,Pillar使用独立的加密session,也是为了保证敏感数据的安全性)。 另外还可以在Pillar中处理平台差异性,比如针对不同的操作系统设置软件包的名字,然后在State中引用等。

默认情况下,master配置文件中的所有数据都添加到Pillar中,且对所有minion可用。默认如下:

#pillar_opts: True 

[root@server_client base]# salt '*' pillar.items    #查看当前pillar的值\

server_client:
----------
_errors:
- Error encountered while rendering pillar top file.
master:
----------
__cli:
salt-master
__role:
master
allow_minion_key_revoke:
True
archive_jobs:
False

....

master上配置文件中定义pillar_roots,用来指定pillar的数据存储在哪个目录

pillar_roots:
base:
- /srv/salt/pillar

首先,和state系统一样,pillar也是需要一个top.sls文件作为一个入口,用来指定对象

base:
'client': #这里面表示谁可以使用pillar
- sl #这里指定了一个sl.sls文件

sl.sls文件:

{% if grains['os'] == 'CentOS' %}
var-sl: sl   #pillar定义了一个变量 var-sl 值为 sl
{% endif %}

测试刚才定义的pillar:

[root@server_client base]# salt '*' pillar.items

在State文件中将可以引用Pillar数据

进入/srv/salt/base目录 新建一个文件叫xxxx.sls   

sl-install:

  pkg.installed:
    - name: {{ pillar['var-sl'] }} #pillar数据中的定义的'var-sl' 变量

 

刷新pillar

[root@server_client base]# salt \* saltutil.refresh_pillar

saltStack_Pillar的更多相关文章

随机推荐

  1. io.spring.platform继承方式和import方式更改依赖版本号的问题

    使用io.spring.platform时,它会管理各类经过集成测试的依赖版本号. 但有的时候,我们想使用指定的版本号,这个时候就需要去覆盖io.spring.platform的版本号. 前面的文章总 ...

  2. php百度地图计算两地现实距离

    请自行到百度地图官网申请您的ak <!--前端获取手机经纬度的代码--> <!--<!DOCTYPE html>--> <!--<html lang=& ...

  3. SPOJ GSS5

    GSS5 - Can you answer these queries V #tree You are given a sequence A[1], A[2], ..., A[N] . ( |A[i] ...

  4. Leetcode49. Group Anagrams字母异位词分组

    给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", "tan&quo ...

  5. mybatis添加数据返回主键

    程序结构图: 表结构: 创表sql: Create Table CREATE TABLE `users` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `us ...

  6. SASS:sass语法参照列表及教程

    http://sass-lang.com/documentation/file.SASS_REFERENCE.html 保存一下,上面的链接包括了scss中所有语法规则. 转载自:http://www ...

  7. python 单元测试之初次尝试

    python 语言中有很多单元测试框架和工具,而unittest单元测试框架作为标准python语言中的一个模块.是其他框架和工具的基础.想要进行单元测试,我们需要使用到unittest框架中的功能. ...

  8. 安装 cx_Oracle

    1.下载 oracle client instant  和  sdk,  全部解压到 /opt/instantclient_11_2/ http://www.oracle.com/technetwor ...

  9. 【JZOJ5094】【GDSOI2017第四轮模拟day3】鸽子 计算几何+floyd

    题面 养鸽人要监视他的鸽子,有n只鸽子站在平面上,他可以在m个给定的点上设置监视器,如果一只鸽子在某个监视器上或者在两个监视器所连直线上或者在三个监视器所连直线的三角形内则其就咕咕咕了,现在养鸽人要让 ...

  10. C#中时间差的计算

    /// <summary> /// 已重载.计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值. /// </summary> /// <param name=&q ...