ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

原创-salt批量替换变量(例如nginx域名)

2021-01-20 18:01:14  阅读:192  来源: 互联网

标签:root pillar lyz cat nginx 域名 test txt salt


当批量更新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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有