【saltstack学习笔记之十一】 salt的pillar

1.pillar的介绍

pillar是salt非常重要的一个组件,它用于给特定的minion定义任何你需要的数据,这些数据可以被salt的其他组件使用。salt在0.9.8版本中引入了pillar。pillar在解析完成以后,是一个嵌套的dict结构;最上层的key是minion ID,其值是该minoin所拥有的pillar数据;每一个值也都是key/value格式。这里可以看出pillar的一个特点,pillar数据是与特定的minion关联的,也就是说每一个minion都只能看到自己的数据,所以pillar可以用来传递敏感数据(在salt的设计中,pillar使用独立的加密session,也是为了保证敏感数据的安全性)。

2.pillar可以用在哪些地方?

1.敏感数据

例如ssh key,加密证书等,由于pillar使用独立的加密session,可以确保这些敏感数据不被其他minion看到。

2.变量

可以在pillar中处理平台差异性,比如针对不同的操作系统设置软件包的名字,然后在state中引用

3.其他任何数据

可以在pillar中添加任何需要用到的数据,比如定义拥护和UID的对应关系,minion的角色等等。

4.用在Targetting中

pillar可以用来选择minon,使用-l选项

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

3.pillar的示例

1.pillar中定时执行操作的格式

schedule:

highstate:

function:state.highstate

minutes:1

2.实际配置步骤

1.在master上修改配置文件

vim /etc/salt/master

查找pillar_roots

pillar_roots:

base:

- /srv/pillar

pillar_opts: True

保存退出

2.创建/srv/pillar/目录

mkdir /srv/pillar -p

3.写pillar文件

cd /srv/pillar

vim top.sls

base:

‘*‘:

- nginx

保存退出

mkdir -p /srv/pillar/nginx

cd /srv/pillar/nginx

vim init.sls

schedule:

nginx:

function: state.sls

minutes: 1

args:

- ‘nginx‘

保存退出

PS1:如果这里的sls文件名字是nginx.sls那么args的值应该是- ‘nginx.nginx‘,切记切记并且top.sls里的值也应该是nginx.nginx!

PS2:如果不想全部minion都执行而只希望执行某个指定的组的话,则进行如下配置:

vim top.sls

base:

test1:        //这个是自定义的组名

-match: nodegroup

- nginx

保存退出

4.查看pillar

salt "*" pillar.items

[[email protected] nginx]# salt ‘*‘ pillar.items

Admin2-saltstack.littlebee.com:

----------

schedule:

----------

nginx:

----------

args:

- nginx

functions:

state.sls

minutes:

1

Admin3-saltstack.littlebee.com:

----------

schedule:

----------

nginx:

----------

args:

- nginx

functions:

state.sls

minutes:

1

出现如上提示表示配置成功了

salt ‘*‘ saltutil.refresh_pillar    //每修改一次pillar都要执行以下刷新命令

5.更改配置文件然后到minion上进行验证

将/srv/salt/etc/nginx/conf.d/default.conf文件中的监听端口改成777,然后1分钟以后到客户端上去看(netstat -lnt),正常的话应该看到监听端口被改成777了

6.pillar值设置以后如果想要取消掉,可以在minion上重启salt-minion服务

把之前的配置删除,然后执行salt ‘*‘ pillar.items和salt ‘*‘ saltutil.refresh_pillar命令刷新pillar值,最后再在其中一台minion上重启salt-minion服务,最后再把/srv/salt/etc/nginx/conf.d/default.conf文件中的监听端口改回80,一分钟以后会发现重启过服务的minion不会把端口改回80,而没有重启过服务的minion还是会继续抓取master上的最新配置。

时间: 2024-10-06 17:25:15

【saltstack学习笔记之十一】 salt的pillar的相关文章

【saltstack学习笔记之六】salt的分组

分组的类型    -G    Grains glob匹配    //比如:[email protected]:Ubuntu    -E    PCRE Minion id匹配    //比如:[email protected]\d+\.(dev|qa|prod)\.loc    -P    Grains PCRE匹配    //比如:[email protected]:(RedHat|Fedora|CentOS)    -L    minions列表    //比如:[email protect

【saltstack学习笔记之八】salt的sls文件

1.在/srv/salt目录下创建top.sls文件 cd /srv/salt touch top.sls 2.编辑sls文件 vim hosts.sls /tmp/aaa.hosts :        //name,可以宿便写,但是如果这里不写同步路径信息的话,需要在后面加上- name: /tmp/aaa.hosts  file.managed:        //指定使用的salt模块的名称    - source: salt://etc/hosts       //同步的源在哪 - us

【saltstack学习笔记之五】salt的event接口

event是一个本地的ZeroMQ PUB Interface,event是一个开放的系统,用于发送信息通知salt或其他的操作系统.每个event都有一个标签.事件标签允许快速制定过滤事件.除了标签之外,每个事件都有一个数据结构.这个数据结构是一个dict类型,其中包含关于事件的信息. 在master上直接将返回结果写入mysql    1.event接口测试        测试脚本salt-event.py内容如下:           import salt.utils.event    

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

Saltstack学习笔记(2)

1.5 Salt  命令介绍(常用的这些一定要多练习) 命令           功能描述 salt           Salt 主命令,比如执行命令模块 satl-cp        复制文件到指定的系统上去 salt-key       和 Minion 之间进行身份验证 salt-master    Master 主守护进程,用于控制 Minion salt-run       前端命令执行 salt-syndic    Salt syndic 守护进程,用于多级 salt-master

《Javascript权威指南》学习笔记之十一:处理字符串---String类和正则表达式

一.正则表达式的基本语法 1.概念:正则表达式由普通字符和特殊字符(元字符)组成的文本模式,该模式描述在查找字符串主体时待匹配的一个或者多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. 普通字符包括所有的大小写字母字符.所有数字.所有标点符号及一些特殊符号.普通字符本身可以组成一个正则表达式,也可以和元字符组合组成一个正则表达式:而元字符则具有特殊的含义,包括().[].{}./.^.$.*.+.?...|.-.?:.?=.?! 2.基本语法 3.优先权含义 二.使用

Android学习笔记(十一)——从意图返回结果

从意图返回结果 startActivity()方法调用另一个活动,但并没有返回结果给当前活动.此时如想从一个活动中回传数据,就要使用startActivityForResult()方法. 点此获取完整代码~                                                                  1.使用上一篇中创建的项目,在secondactivity.xml文件中添加文本框和按钮,代码如下: <TextView android:layout_width

马哥学习笔记二十一——LVS DR模型

kernel parameter: arp_ignore: 定义接收到ARP请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应: 1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应: arp_announce:定义将自己地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告: 1:试图仅向目标网络通告与其网络匹配的地址: 2:仅向与本地接口上地址匹配的网络进行通告: curl命令选项: --cacert <file> CA证书 (SSL) --capath &l

Mysql学习笔记(十一)临时表+视图

原文:Mysql学习笔记(十一)临时表+视图 学习内容: 临时表和视图的基本操作... 临时表与视图的使用范围... 1.临时表   临时表:临时表,想必大家都知道这个概念的存在...但是我们什么时候应该使用到临时表呢?当一个数据库存在着大量的数据的时候,我们想要获取到这个数据集合的一个子集,那么我们就可以使用临时表来保存我们想要的数据..然后对临时表进行操作就可以了...使用临时表必然是有原因的..使用临时表会加快数据库的查询性能.... create temporary table tmp_