zoukankan      html  css  js  c++  java
  • 原创-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文件中的值。

  • 相关阅读:
    Unity3d资源管理分析
    Unity3D之MonoBehaviour的可重写函数整理
    Unity3D脚本学习——运行时类
    A*寻路初探(转载)
    360sdk网游支付服务
    总结使用Unity 3D优化游戏运行性能的经验
    Unity3D之Lightmap详解
    「luogu2714」四元组统计
    「BZOJ1066」[SCOI2007]蜥蜴
    「luogu1251」餐巾计划问题
  • 原文地址:https://www.cnblogs.com/normanlin/p/14304226.html
Copyright © 2011-2022 走看看