SaltStack 使用 Jinja2 模板

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

[[email protected] ~]$ 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
[[email protected] ~]$ salt ‘*‘ state.sls test

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

[[email protected] ~]$ cat /srv/salt/apache/httpd.conf ....
{% set lister_port = 80 %}
{% if grains[‘fqdn‘] == ‘minion01‘ %}
  {% set listen_port = 8080 %}
{% endif %}

Listen {{ listen_port }}
[[email protected] ~]$ 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    # 这里需要注明使用模板引擎
[[email protected] ~]$ salt ‘*‘ state.sls test

原文地址:https://www.cnblogs.com/pzk7788/p/10360812.html

时间: 2024-07-30 17:39:11

SaltStack 使用 Jinja2 模板的相关文章

SaltStack实战之配置管理-Jinja2模板

SaltStack实战之配置管理-Jinja2模板 学习 SaltStack SaltStack实战之配置管理-Jinja2模板 1. Salt yaml配置文件使用Jinja2模板介绍 1.1 File状态使用template参数 1.2 模板文件里面变量使用{{ 名称 }} 1.3 变量列表 2. 实战应用 1. Salt yaml配置文件使用Jinja2模板介绍 jinja2官方网站: http://jinja.pocoo.org/ 1.1 File状态使用template参数 - tem

SaltStack配置管理-jinja模板

上一篇:SaltStack配置管理-状态间关系 需求:需要apache配置文件里面监听的端口是每个minion本地的地址 saltstack默认的模板是jinjia模板 参考文档:http://docs.jinkan.org/docs/jinja2/ 两种分隔符: {% ... %} 和 {{ ... }} .前者用于执行诸如 for 循环 或赋值的语句,后者把表达式的结果打印到模板上. 如何知道salt配置文件是一个模板 需要在sls配置文件里面定义 apache.init.sls 修改配置h

Django1.10配置Jinja2模板

1.安装Jinja2模块: pip install jinja2 2.配置settings: TEMPLATES = [     {         'BACKEND': 'django.template.backends.jinja2.Jinja2',         'DIRS': [os.path.join(BASE_DIR, 'templates')],         'APP_DIRS': True,         'OPTIONS': {             'environ

[Webpy]在webpy中使用jinja2模板

webpy的模板感觉写小的网页还可以,但是如果要是写比较多的html标签就会显得非常乱,于是决定使用jinja2,这个模板类似django的模板,而且跟其他pythonweb框架的兼容性也比较好. 在项目目录下新建一个settings文件 #-*- coding: utf-8 -*- __author__ = 'orangleliu' ''' settings of the project ''' import os import web from web.contrib.template im

Jinja2模板语言

一,基本使用 flask中默认使用的jinja2模板语言:与django模板语言一样,都是 {{ }} 和 {% %} 1 ,Jinja2模板中的流程控制: Jinja2模板语言中的 for {% for foo in g %} {% endfor %} Jinja2模板语言中的 if {% if g %} {% elif g %} {% else %} {% endif %} 2, 取值方式 字典:可以使用点的方式,还可以使用字典的get("xx"), name["xx&q

测开之路一百二十九:jinja2模板语法

flask用的是jinja2模板,有自己特定的语法 形参: 在html里面留占位参数: {{ 参数名 }},后端传值时,参数名=参数值 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>b页面</title></head><body> <h1>{{ user }},你好<

【Flask】 Jinja2模板语言

Jinja2 Jinja2是Python Web编程中的主流模板语言.因为flask是基于Jinja2和Werkzeug发展而来,在安装flask的时候jinja2自动就被装在上面了. 之前提到了很多Jinja2的使用方法啊,下面将补充或者更加详细地说明Jinja2作为模板语言的使用. [Jinja2官方文档]http://docs.jinkan.org/docs/jinja2/ ■ 基本语义 看过之前模板的例子就知道,Jinja2做构成的模板文件中,文本内容大致可以分成几个种类.比如特殊文本(

Jinja2模板引擎简介

视图函数的作用是 : 处理业务逻辑和返回响应内容. 在开发中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本,这个时候使用模板,让它来承担返回响应的内容,能够使代码结构清晰,耦合度低 模板是一个包含响应文本的文件,flask中常用的是Jinja2这个模板引擎来渲染模板  渲染就是使用真实值替换变量,返回字符串的过程. Jinja 是模板引擎,是由python实现的模板语言,flask内置的模板语言. 模板语言是一种被设计来自动生成文档的简单文本格式. 项目下创建template文件夹

flask基础之jinja2模板-过滤器

上一节主要是介绍了jinja2基本的结构及表现形式,本节介绍模板变量的处理技术:过滤器 一.过滤器 过滤器通过管道符号"|"与变量连接,并且可以通过圆括号传递参数. {{  variable|default('param')  }} 解释: variable,待转换的变量 default,是过滤器,含义是:判断被转换的变量是否被定义过,如果没有被定义,则用字符串参数替换被转换的变量, 比如,abs(number)过滤器,将被转换的变量转换为绝对值形式.attr(object,name)