• 原创-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文件中的值。

  • 相关阅读:
    js中使用EL表达式
    洛谷——RMQ
    模板——RMQ
    洛谷——图论
    洛谷——基础搜索
    洛谷——搜索
    搭桥
    简单dp
    Codevs 3194 基因变异
    cin、scanf、gets、getchar 用法介绍
  • 原文地址:https://www.cnblogs.com/normanlin/p/14304226.html
Copyright © 2020-2023  润新知