zoukankan      html  css  js  c++  java
  • saltstack在jianja模板中,执行salt函数来获取某些变量的值,并且将配置写入到配置文件中?

    问题描述

      通过saltstack的jinja模板方式,可以将变量的值写入到配置文件,即动态获取的方式。这里介绍,通过执行salt函数来获取值的方式。

    演示

    1.通过在sls中,增加jinja的模板信息,变量信息,通过salt函数获取该值。

    apache-config:
      file.managed:
        - name: /etc/httpd/conf/httpd.conf
        - source: salt://lamp/files/httpd.conf
        - user: root
        - group: root
        - mode: 644
        - template: jinja
        - defaults:
          Listen_Port: 86
          OS: {{ grains['os'] }}
          HW_ADDR: {{ salt['network.hw_addr']('eth1') }}  

    2.修改配置文件httpd.conf,增加引用变量HW_ADDR

    # Hard Addr is {{ HW_ADDR }}   #应用变量的值。

    3.执行状态模块,进行配置

    [root@testvm01 lamp]# salt 'testvm03' state.sls lamp.lamp
    testvm03:
    ----------
              ID: lamp-pkgs
        Function: pkg.installed
          Result: True
         Comment: All specified packages are already installed
         Started: 17:08:54.896384
        Duration: 484.232 ms
         Changes:   
    ----------
              ID: apache-config
        Function: file.managed
            Name: /etc/httpd/conf/httpd.conf
          Result: True
         Comment: File /etc/httpd/conf/httpd.conf updated
         Started: 17:08:55.383683
        Duration: 67.694 ms
         Changes:   
                  ----------
                  diff:
                      --- 
                      +++ 
                      @@ -7,7 +7,7 @@
                       # for a discussion of each configuration directive.
                       #
                       # OS is RedHat
                      -# Hard Addr is 08:00:27:7c:9c:2d
                      +# Hard Addr is 08:00:27:f1:2e:e9  #获取到了网卡的信息,并且增加到该配置文件中
                       # Do NOT simply read the instructions in here without understanding
                       # what they do.  They're here only as hints or reminders.  If you are unsure
                       # consult the online docs. You have been warned.  
    ----------
              ID: php-config
        Function: file.managed
            Name: /etc/php.ini
          Result: True
         Comment: File /etc/php.ini is in the correct state
         Started: 17:08:55.451548
        Duration: 11.319 ms
         Changes:   
    ----------
              ID: apache-service
        Function: service.running    #检测到配置文件发生了变化,就reload配置文件
            Name: httpd
          Result: True
         Comment: Service reloaded
         Started: 17:08:55.498927
        Duration: 82.003 ms
         Changes:   
                  ----------
                  httpd:
                      True
    ----------
              ID: mysql-service
        Function: service.running
            Name: mysqld
          Result: True
         Comment: The service mysqld is already running
         Started: 17:08:55.581261
        Duration: 106.275 ms
         Changes:   
    
    Summary for testvm03
    ------------
    Succeeded: 5 (changed=2)
    Failed:    0
    ------------
    Total states run:     5
    Total run time: 751.523 ms

    jinja中调用salt函数的语法:

    # The following two function calls are equivalent.
    {{ salt['cmd.run']('whoami') }}
    {{ salt.cmd.run('whoami') }}

    注意:第一中写法,参数要有括号,并且用单引号,否则会报错。

    文档创建时间:2019年3月11日17:10:01

  • 相关阅读:
    KMP算法
    Python 正则表达式
    Python 装饰器
    C/C++ 之输入输出
    PAT(Basic Level)--个位数统计
    Java 接口与抽象类
    Java集合-01概述
    数据结构--红黑树
    数据结构--(AVL)平衡二叉树
    数据结构--二叉搜索树
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/10511840.html
Copyright © 2011-2022 走看看