让运维不加班,从一套On-Call响应机制开始!
719
2023-02-13
saltstack应用之简化pillar配置步骤
定义
简化pillar配置步骤
正常情况下,每个或每组minion在top.sls中单独配置,这样略显麻烦,可以使用py模式的sls文件来简化配置
1,要启用pillar,首先要修改master中的配置
1 | vim /etc/salt/master |
1 2 3 | pillar_roots: base: -/srv/pillar |
2,重启salt master
1 | service salt-master restart |
3,建立top.sls,这里使用*号匹配所有的minion到custom
1 2 | touch/srv/pillar/top.sls vim/srv/pillar/top.sls |
1 2 | ‘*’: -custom |
编写custom/init.sls
1 2 | touch/srv/pillar/custom/init.sls vim/srv/pillar/custom/init.sls |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!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) ifos.path.isfile(path): s=open(path).read() config=yaml.load(s) returnconfig |
5,这样以后需要添加对应salt minion的pillar信息时,只要到custom目录下新建以salt id命名的文件,文件内容为yaml格式,就可以自动解析了,省去了到top.sls中添加配置的烦恼。例如 salt id为1.2.3.4-centos.game.web:
1 2 | touch/srv/pillar/custom/1.2.3.4-centos.game.web vim/srv/pillar/custom/1.2.3.4-centos.game.web |
1 2 | age:18 name:fox |
编写完后执行下面的命令就能看到age信息了。
1 | salt1.2.3.4-centos.game.web pillar.item age |
总结
发表评论
评论列表