zoukankan      html  css  js  c++  java
  • SaltStack 使用 Jinja2 模板

    Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件:

    [root@localhost ~]$ cat /srv/salt/test.sls 
    {% set apache_conf = '/etc/httpd/conf/httpd.conf' %}      # {% set ... %} 用于设置变量
    {% if grains['os'] == 'Debian' %}                         # {% if ... %} 用于条件判断,用 {% endif %} 结束判断
      {% set apache_conf = '/etc/apache2/httpd.conf' %}       # {{ var }} 用于获取变量值
    {% endif %}
    
    {{ apache_conf }}:
      file.managed:
        - source: salt://apache/httpd.conf
    [root@localhost ~]$ salt '*' state.sls test


    配置文件也能使用 Jinja2 模板,如下,apache 的配置文件中,监听端口这部分配置使用 Jinja2 模板:

    [root@localhost ~]$ cat /srv/salt/apache/httpd.conf 
    .... {
    % set lister_port = 80 %} {% if grains['fqdn'] == 'minion01' %} {% set listen_port = 8080 %} {% endif %} Listen {{ listen_port }}
    [root@localhost ~]$ cat /srv/salt/test.sls 
    {% set apache_conf = '/etc/httpd/conf/httpd.conf' %}
    {% if grains['os'] == 'Debian' %}
      {% set apache_conf = '/etc/apache2/httpd.conf' %}
    {% endif %}
    
    {{ apache_conf }}:   
      file.managed:
        - source: salt://apache/httpd.conf
    - template: jinja # 这里需要注明使用模板引擎
    [root@localhost ~]$ salt '*' state.sls test

          

  • 相关阅读:
    Django 基础教程
    Python之路【第十七篇】:Django【进阶篇 】
    Python之路【第十六篇】:Django【基础篇】
    Python之路【第十五篇】:Web框架
    AngularJS 教程
    jQuery
    最小公倍数生成树
    51nod 1743 雪之国度
    codeforces 633F The Chocolate Spree
    hihocoder 1246 王胖浩与环
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10360812.html
Copyright © 2011-2022 走看看