我在由ansible呈现的jinja模板上有以下导入:
labels:
{% set name = 'jellyfin' %}
{% set port = '8096' %}
{% filter indent(width=8, first=True) %}
{% include './labels.yml.jinja' %}
{% endfilter %}正如您所看到的,有一些非呈现块可以设置一些局部变量和其他东西。当模板由ansible呈现时,模板的第一行被移动到与非呈现块之和+2相同的空格(本例中为32=6个空格+2的5个块)。
例如:
labels:
# this are the labels, fools
- "traefik.enable=true"
- "traefik.backend=jellyfin"我可以删除所有{% %}块的缩进,然后它将正常工作,但是看起来很难看,而且不太合适。
即使我添加了一个减号以删除非呈现块中的空白空间,如下所示:
{% set name = 'jellyfin' -%}
{% set port = '8096' -%}
{% filter indent(width=8, first=True) -%}
{% include './labels.yml.jinja' -%}
{% endfilter -%}第一行仍在移动(尽管要少得多)
我怎么才能解决这个问题?
发布于 2022-03-16 16:36:09
我只需将#jinja2: lstrip_blocks: "True"添加到导入模板的顶部,这就成功了。
我从本文中收集了这些信息,解释了我的确切问题并给出了一个解决方案:https://radeksprta.eu/posts/control-whitespace-in-ansible-templates/
但我必须说,默认的行为是非常混乱的。
https://stackoverflow.com/questions/71500723
复制相似问题