原创-salt批量替换变量(例如nginx域名)
作者:互联网
当批量更新nginx配置文件是,某些场景中每个服务器都可以使用单独的域名,这时候使用salt批量修改就要使用pillar模块去做变量匹配。下面举例:
编写一个tmp/lyztest.txt。文件传输后匹配变量赋值目标主机b020063的域名为lyz_testb020063.com,实现变量匹配的效果。
[root@b020150 lyz-test]# cat pillar-test.sls
{% set hostname = grains.id %} #获取主机名
{% set domain = pillar['lyz_test'][hostname] %} #去/srv/pillar中lyz_test文件获取主机名对应的值
lyztest.txt:
file.managed:
- name: /tmp/lyztest.txt
- source: salt://lyz-test/test.txt
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
domain: {{ domain }}
cmd.run:
- name: cat /tmp/lyztest.txt
[root@b020150 lyz-test]# cat test.txt
{{ domain }} #文件里定义变量
添加pillar配置:
vim /etc/salt/master
找到pillar目录
[root@b020150 pillar]# cat lyz_test.sls
lyz_test:
b020063: lyz_testb020063.com
[root@b020150 pillar]# cat top.sls
base:
'*':
- lyz_test
[root@b020063 tmp]# cat lyztest.txt
lyz_testb020063.com
---
可以看到文件里的变量已经变成了pillar文件中的值。
标签:root,pillar,lyz,cat,nginx,域名,test,txt,salt 来源: https://www.cnblogs.com/normanlin/p/14304226.html