@cdmonkey
2016-07-08T09:17:41.000000Z
字数 2203
阅读 1297
Saltstack
http://ju.outofmemory.cn/entry/97124
http://docs.saltstack.cn/topics/pillar/index.html

其作用就是于控制端为特定的被控节点定义你需要的任何的数据,该数据能够被“Salt”的其他组件使用。这里可以看出它的一个特点,Pillar数据是与特定的被控节点相关联的,也就是说每一个被控节点都只能看到自己的数据,所以可以用来传递敏感数据(它会使用独立的加密会话,也是为了保证敏感数据的安全性)。因而相比较于“Grains”,它的应用场景有所不同。
用来产生特定于被控端节点的任意数据的接口。Pillar中产生的数据几乎可以于“Salt”的任何组件中使用。
相对于“Grains”其存储的数据属于静态数据,前者存储的属于动态数据,是于控制端动态定义的。
显示所有默认的“Pillar”信息:
[root@salt-master ~]# salt '*' pillar.items
首先要在控制端节点的主配文件中开启“Pillar”的设定内容,换句话说我们自定义的数据是要存放于控制节点的,这一点与“Grains”截然不同,后者的自定义数据是存放于被控节点自己本地。
[root@salt-master ~]# vim /etc/salt/master# 我们当前只定义基础环境:pillar_roots:base:- /etc/salt/pillar# 创建相应的目录:[root@salt-master ~]# mkdir /etc/salt/pillar
默认情况下,控制端的主配文件中的所有数据都添加到Pillar中,且对所有被控节点可用。如果要禁用这一功能,可以在控制端主配文件中添加如下内容,重启服务后生效:
pillar_opts: False
接下来要创建入口文件top.sls(与状态管理很相似,Pillar也有“top file”,也使用相同的匹配方式将数据应用到被控节点上)。
[root@salt-master ~]# cd /etc/salt/pillar/[root@salt-master pillar]# vim top.slsbase:'*':- init.rsyslog# Create directory:[root@salt-master pillar]# mkdir /etc/salt/pillar/init[root@salt-master pillar]# cd init/[root@salt-master init]# vim rsyslog.sls# We need to use the Jinja template:{% if grains['osfinger'] == 'CentOS-6' %}syslog: rsyslog{% elif grains['osfinger'] == 'CentOS-5' %}syslog: syslog{% endif %}-------------------# 完成配置后需要重启控制端节点的服务进程:[root@salt-master ~]# /etc/init.d/salt-master restart
最后于控制节点上进行刷新操作:
[root@salt-master ~]# salt '*' saltutil.refresh_pillarnode2.cdmonkey.com:Truenode3.cdmonkey.com:True#然后我们就可以获取到相应的设定内容了:[root@salt-master ~]# salt '*' pillar.item syslognode2.cdmonkey.com:----------syslog:rsyslognode3.cdmonkey.com:----------syslog:rsyslog
[root@salt-master ~]# salt -I 'syslog:rsyslog' test.pingnode3.cdmonkey.com:Truenode2.cdmonkey.com:True
显示当前正在执行的“JID”:
[root@salt-master ~]# salt '*' test.ping -vExecuting job with jid 20150630083550047324-------------------------------------------node2.cdmonkey.com:Truenode3.cdmonkey.com:True
每次执行指令时都会有产生一个任务标识“JID”,以此代表你执行的操作。我们可以进一步针对这个任务标识对执行过的任务作进一步的管理。
显示当前正在进行中的任务:
[root@salt-master ~]# salt '*' saltutil.runningnode2.cdmonkey.com:node3.cdmonkey.com:#由于当前没有正在运行的任务,所以没有任何显示。
停止当前正在进行中的任务:
[root@salt-master ~]# salt '*' saltutil.kill_job 20150630083550044693node2.cdmonkey.com:node3.cdmonkey.com:Signal 9 send to job 20150630083550044693 at pid 5908
