什么是Pillar?

Pillar是在salt 0.9.8版本后才添加的功能组件。它跟grains的结构一样,也是一个字典格式,数据通过key/value的格式进行存储。在Salt的设计中,Pillar使用独立的加密sessiion,所以Pillar可以用来传递敏感的数据,例如ssh-key,加密证书等。

Pillar 是什么样子?

###  一台centos 6.5的 dell r420服务器的pillar
[root@yw_home _grains]# salt 192.168.0.100 pillar.data
192.168.0.100:----------master:----------auth_mode:1auto_accept:Falsecachedir:/var/cache/salt/masterclient_acl:----------client_acl_blacklist:----------cluster_masters:cluster_mode:paranoidconf_file:/etc/salt/masterconfig_dir:/etc/saltcython_enable:Falsedaemon:Truedefault_include:master.d/*.confenable_gpu_grains:Falseenforce_mine_cache:Falseenumerate_proxy_minions:Falseenvironment:Noneext_job_cache:ext_pillar:extension_modules:/var/cache/salt/master/extmodsexternal_auth:----------external_nodes:failhard:Falsefile_buffer_size:1048576file_client:localfile_ignore_glob:Nonefile_ignore_regex:Nonefile_recv:Falsefile_roots:----------base:- /srv/saltfileserver_backend:- rootsfileserver_followsymlinks:Truefileserver_ignoresymlinks:Falsefileserver_limit_traversal:Falsegather_job_timeout:2gitfs_base:mastergitfs_remotes:gitfs_root:hash_type:md5hgfs_base:defaulthgfs_branch_method:brancheshgfs_remotes:hgfs_root:id:192.168.0.100interface:0.0.0.0ipv6:Falsejinja_lstrip_blocks:Falsejinja_trim_blocks:Falsejob_cache:Truekeep_jobs:24key_logfile:/var/log/salt/keykeysize:4096log_datefmt:%H:%M:%Slog_datefmt_logfile:%Y-%m-%d %H:%M:%Slog_file:/data/logs/salt_master.loglog_fmt_console:[%(levelname)-8s] %(message)slog_fmt_logfile:%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)slog_granular_levels:----------log_level:warningloop_interval:60master_ext_job_cache:master_roots:----------base:- /srv/salt-mastermaster_tops:----------max_open_files:100000minion_data_cache:Truenodegroups:----------group_all:*open_mode:Falseorder_masters:Falseoutputter_dirs:peer:----------permissive_pki_access:Falsepidfile:/var/run/salt-master.pidpillar_opts:Truepillar_roots:----------base:- /srv/salt/pillarpillar_version:2pki_dir:/etc/salt/pki/masterpub_hwm:1000publish_port:4505publish_session:86400range_server:range:80reactor:renderer:yaml_jinjaret_port:4506root_dir:/runner_dirs:salt_transport:zeromqsaltversion:2014.1.0search:search_index_interval:3600serial:msgpacksign_pub_messages:Falsesock_dir:/var/run/salt/masterstate_auto_order:Truestate_events:Truestate_output:fullstate_top:salt://top.slsstate_verbose:Truesvnfs_remotes:svnfs_root:syndic_master:syndic_master_port:4506syndic_wait:1timeout:5token_dir:/var/cache/salt/master/tokenstoken_expire:43200user:rootverify_env:Truewin_gitrepos:- https://github.com/saltstack/salt-winrepo.gitwin_repo:/srv/salt/win/repowin_repo_mastercachefile:/srv/salt/win/repo/winrepo.pworker_threads:10

pillar的数据是跟特定的minion关联的,可以用来传递minion自己的信息。管理员也可以自定义自己的pillar来对minion进行管理。

默认情况下,master配置文件中的所有数据都添加到Pillar中,且对所有minion可用。如果要禁用这一默认值,可以在master配置文件中添加如下数据,重启服务后生效:

pillar_opts: False

自定义Pillar数据  

在Master的SLS文件中定义

假设使用默认pillar_roots配置 /srv/pillar

vim /srv/pillar/top.sls
## 编辑pillar 的 top.sls 文件添加下面内容
base : '*':- data- git
dev  :'os:CentOs':- git    vim /srv/pillar/data/init.sls
## 添加下面内容
roles:webservervim  /srv/pillar/git.sls
## 添加下面内容
{% if grains['os'] == 'CentOs' %}
git: git
{% elif grains['os'] == 'Debian' %}
git: git-core
{% endif %}

pillar 更sls一样拥有自己的top.sls文件,通过top.sls文件作为入口,组织其它的pillar文件。

data定义了一个roles的值,如果不使用详细的data.init声明,则默认会使用data下的init.sls作为声明文件,如果同时存在data.sls跟data/init.sls文件,则会优先使用data.sls文件来访问。

git是使用grains的系统类型来进行不同的pillar定义。

在master上修改Pilla文件后,需要用以下命令刷新minion上的数据:

salt '192.168.0.100' saltutil.refresh_pillar

怎么使用Pillar ?

  • Targeting :

Salt使用-I 选项来使用

salt -I 'roles:webserver' test.ping
  • SLS文件中使用

需要根据系统环境安装一个git软件

vim /srv/salt/git_env.sls
## 添加下面内容
git : pkg.installed:- name : {{pillar['git']}}## 或是添加成下面样式,设置默认的pillar值
git:pkg.installed:- name: {{ salt['pillar.get']('git', 'git') }}

参考文章:

http://www.ituring.com.cn/article/42398

http://docs.saltstack.cn/topics/pillar/index.html

转载于:https://blog.51cto.com/arlen/1424515

SaltStack 学习笔记 - 第六篇: 详解Pillar相关推荐

  1. [原创]Saltstack学习笔记:命令参数详解以及配置文件说明

    很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...

  2. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  3. 【学习笔记】线段树详解(全)

    [学习笔记]线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来... [目录] [基础]作者:\((Silent\)_\(EAG)\) [懒标记 ...

  4. java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解

    Java学习笔记16-Netty缓冲区ByteBuf详解 Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的. JDK Byt ...

  5. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)

    spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...

  6. Laravel学习笔记汇总——Collection方法详解

    ## Laravel学习笔记汇总--Collection方法详解 本文参考:https:// laravel.com/docs/8.x/collections // 返回整个底层的数组 collect ...

  7. Android学习笔记——Android 签名机制详解

    Android 签名机制详解 近期由于工作需要在学习 Android 的签名机制,因为没有现成资料,只能通过开发者文档和阅读博客的方式对 Android 签名机制进行大致了解.过程中查阅到的资料相对零 ...

  8. [读书笔记]C#学习笔记三: C#类型详解..

    前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...

  9. [学习笔记] 伸展树splay详解+全套模板+例题[Luogu P3369 【模板】普通平衡树]

    文章目录 引入概念 全套模板 变量声明 update ==rotate旋转== splay操作 insert插入 delete删除 查找x的位置 查找第k大 前驱/后继 极小值-inf和极大值inf的 ...

最新文章

  1. python dlib学习(四):单目标跟踪
  2. java反编译工具_Android APP 取证之逆向工具篇
  3. SDNU 1416.一元三次方程求解(数学)
  4. PHP写的一个轻量级的DI容器类(转)
  5. My FioriTest navigation from master page to detail page
  6. c语言字符串倒置,单词倒置,用C++实现,将一句话里的单词进行倒置的方法详解
  7. new关键字对类成员的阻断
  8. Oracle中关于计算时间差的例子:
  9. php 迭代设计模式 -- BookList -- 分页
  10. 【kafka】kafka NoSuchElementException ArrayDeque getLast 压缩方式不同
  11. 从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第十讲 WPF 系统MainWindow
  12. [DFS|回溯法] leetcode 17 电话号码的字母组合
  13. poj1456(贪心+并查集)
  14. 线性代数计算器C语言(1)——计算行列式值
  15. 焦虑症和抑郁症的区别
  16. 如何申请Office365试用账号
  17. RISC-V Assembly Programmer's Manual
  18. 《基于AI+大数据的医疗大健康最佳实践》---- AI 赋能临床试验受试者招募助力企业药物研发
  19. pip安装三方库不成功的解决方法
  20. ITE平台开发 chapter 1-环境搭建

热门文章

  1. extract和extractValue的差别
  2. shell脚本开发总结
  3. ssas 数据源mysql_BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备...
  4. html转换成keynote,keynote代码高亮【转】
  5. MySQL 高级 - 索引 - 索引设计原则
  6. Docker常用操作
  7. 消息发送样例介绍和步骤分析
  8. 私有属性和方法-伪私有属性和方法
  9. 九九乘法表-使用转义字符调整格式
  10. 新版本springboot-springboot与springcloud理解误区