欢迎光临
我们一直在努力

saltstack应用之简化pillar配置步骤

在之前的文章<<saltstack应用之批量部署mysql>>中有用到简化pillar配置步骤,这次把里面关于pillar的内容单独拿出来,可以更直观的理解pillar的使用。

定义

Pillar是Salt用来分发全局变量到所有minions的一个接口。不像是state tree, pillar只对匹配类型的minion有效。 这使它为特定的minion存储敏感数据非常有用.官网详细介绍

简化pillar配置步骤

正常情况下,每个或每组minion在top.sls中单独配置,这样略显麻烦,可以使用py模式的sls文件来简化配置

1,要启用pillar,首先要修改master中的配置

vim /etc/salt/master

pillar_roots:
  base:
    - /srv/pillar

2,重启salt master

service salt-master restart

3,建立top.sls,这里使用*号匹配所有的minion到custom

touch /srv/pillar/top.sls
vim /srv/pillar/top.sls

‘*’:
  - custom

编写custom/init.sls

touch /srv/pillar/custom/init.sls
vim /srv/pillar/custom/init.sls

#!py
#coding:utf-8
\"\"\"
返回minion对应的pillar信息
\"\"\"
import yaml
import os

def run():
  \"\"\"
  首先获取请求的salt id,例如id是:1.2.3.4-centos.game.web,然后根据获取的pillar_root组合成路径/srv/pillar/custom/1.2.3.4-centos.game.web
如果文件存在,利用yaml模块从文件中读取信息,返回字典
如果文件不存在,则返回空
  \"\"\"
  config={}
  id=__opts__[\'id\']
  pillar_root=__opts__[\'pillar_roots\'][\'base\'][0]
  path=\'%s/custom/%s\'%(pillar_root,id)
  if os.path.isfile(path):
    s=open(path).read()
    config=yaml.load(s)
  return config

5,这样以后需要添加对应salt minion的pillar信息时,只要到custom目录下新建以salt id命名的文件,文件内容为yaml格式,就可以自动解析了,省去了到top.sls中添加配置的烦恼。例如 salt id为1.2.3.4-centos.game.web:

touch /srv/pillar/custom/1.2.3.4-centos.game.web
vim /srv/pillar/custom/1.2.3.4-centos.game.web

age: 18
name: fox

编写完后执行下面的命令就能看到age信息了。

salt 1.2.3.4-centos.game.web pillar.item age

总结

pillar系统还是非常灵活的,熟练的使用可以进一步提升自动化的程度。

赞(0) 打赏
主机商所有内容均来自网络,若无意侵犯到您的权利,请及时与联系 QQ 2232175042,将在48小时内删除相关内容!!主机测评网 » saltstack应用之简化pillar配置步骤

主机商评测网 找服务器 更专业 更方便 更快捷!

专注IDC行业资源共享发布,给大家带来方便快捷的资源查找平台!

联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫