如何忽略 j2 模板文件中的 jinja2 大括号 {{}}

dru*_*fin 2 variables jinja2 ansible ansible-template ansible-2.x

我有一个 j2 文件,我想编辑并复制到我的远程服务器(作为我的 ansible play 的一部分)。该文件有几个用大括号表示的 3 个变量{{ }}。我怎样才能只定位命名的第二个变量{{ bar }}并忽略文件中的其他 2个变量,这样它们就可以单独存在并复制到我的远程服务器?例如,我的 test.j2 文件包含:

line 1 {{ foo }}
line 2 {{ bar }}
line 3 {{ foo2 }}
Run Code Online (Sandbox Code Playgroud)

{{ bar }}我可以在我的 ansible playbook 中明确处理变量吗?如果是这样,我将如何在我的 ansible playbook 中(在语法上)编写它?

bow*_*bow 8

下面的内容不是我会推荐的,但是如果您只需要模板而不需要bar其他任何东西(或者如果bar总是在其余部分之前先模板化),您可能可以使用该{% raw %}块:

{% raw %}line 1 {{ foo }}{% endraw %}
line 2 {{ bar }}
{% raw %}line 3 {{ foo2 }}{% endraw %}
Run Code Online (Sandbox Code Playgroud)

基本上这个想法是将非条形变量标记为原始变量,以便 jinja 不会对它们进行模板化。