jinja2基本语法

  1. 控制结构 {% %}

            jinja2中的for循环用于迭代Python的数据类型,包括列表,元组和字典

         2.变量取值 {{ }}

            jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等。

            所有对变量的操作都必须在{{}}代码块中,{% %}只能使用一些控制语句

        3.注释 {# #}

        4.过滤器

            safe: 渲染时值不转义

           capitialize: 把值的首字母转换成大写,其他子母转换为小写

           lower: 把值转换成小写形式

           upper: 把值转换成大写形式

           title: 把值中每个单词的首字母都转换成大写

           trim: 把值的首尾空格去掉

           striptags: 渲染之前把值中所有的HTML标签都删掉

           join: 拼接多个值为字符串

           replace: 替换字符串的值

           round: 默认对数字进行四舍五入,也可以用参数进行控制

           int: 把值转换成整型

          只需要在变量后面使用管道(|)分割,多个过滤器可以链式调用,前一个过滤器的输出会作为后一个过滤器的输入

模板实例

cluster.name: es-cluster
node.name: node-{{ ansible_default_ipv4['address'].split('.')| last }}
cluster.initial_master_nodes: node-{{ ansible_default_ipv4['address'].split('.')| last }}
path.data: {{ es_path_data }}
path.logs: {{ es_path_logs }}
network.host: 0.0.0.0
{% set hosts = [] %} #定义一个Python列表变量
{% for host in groups['elastic-master'] %} #使用循环控制语句遍历列表 
  {{ hosts.append(host) }}  #对Python列表变量进行操作
{% endfor %}
discovery.seed_hosts: {{ hosts }} #输出变量的值
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
正确模板

     ansible使用jinja2模板

cluster.name: es-cluster
node.name: node-{{ ansible_default_ipv4['address'].split('.')| last }}
cluster.initial_master_nodes: node-{{ ansible_default_ipv4['address'].split('.')| last }}
path.data: {{ es_path_data }}
path.logs: {{ es_path_logs }}
network.host: 0.0.0.0

{% set seed_hosts = [] %}
{% for host in groups['elastic'] %}
    {% seed_hosts.append("{{ host }}") %} 
    
{% endfor %}

discovery.seed_hosts: {{ seed_hosts }}
 
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
错误模板

相关文章:

  • 2022-01-23
  • 2021-08-15
  • 2022-02-07
  • 2023-02-23
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2021-07-14
猜你喜欢
  • 2020-04-29
  • 2021-12-17
  • 2022-12-23
  • 2020-05-02
  • 2022-03-10
  • 2022-12-23
  • 2021-09-01
相关资源
相似解决方案