ansible - Ansible - jinja 防止 jinja 在宏中剥离换行符
问题描述
假设我有一个使用以下 p 的 jinja2 模板
{% macro logging(ltype) %}
{% if ltype == 'fluentd' %}
logging:
driver: 'fluentd'
options:
tag: "{{ app_name }}.{{ '{{' }}.Name{{ '}}' }}"
labels: "mylabel"
{% endif %}
{% endmacro %}
...
{{ logging('fluentd') }}
...
当我渲染这个模板(template
模块)时,我得到
...
logging:
driver: 'fluentd'
options:
tag: "test.{{.Name}}"
labels: "mylabel"
...
如您所见,由于driver
我不知道的原因,密钥被转移。我已经尝试了所有空格控制的可能性,没有任何改变这种行为。
有没有人有解决它的想法?
期望的结果是
...
logging:
driver: 'fluentd'
options:
tag: "test.{{.Name}}"
labels: "mylabel"
...
解决方案
将模板的该部分更改为:
...
{{ logging('fluentd') | indent(3,true) }}
...
推荐阅读
- r - 使用多个几何图形时如何消除ggplotly重复的图例条目
- google-cloud-functions - Google Dialogflow:无法读取未定义的属性“EventInput”
- typescript - 即时将 JSON Schema 对象转换为 Typescript 类型
- django - Django 和具有写入实例 + 多个读取副本的数据库——运行 Celery 作业
- r - 与涉及 ridge_models 的错误作斗争
- vue.js - TypeError:无法设置未定义的属性(设置“授权”)
- java - 直接调用@Bean注解的方法——函数调用@Service类中的一个bean
- javascript - 单击当前按钮时无法设置计数器
- google-sheets - 用于查找逗号分隔的 SKU 数组并返回与 SKU 关联的产品名称的电子表格公式
- mysql - 从当前月份和前 6 个月开始每月计数一列(包括空值)?