如何在Jinja2中转义双花括号?

时间:2019-04-01 21:30:33

标签: ansible jinja2

我需要在使用Ansible编写的代码中转义两个大括号。 问题是我拥有所有需要转换为变量的参数。基本上我正在研究模板创建者。

我尝试使用{%raw%} {{变量名}} {%endraw%},但没有成功。当我尝试/ {/ {name-of-variable}}时,我几乎明白了,但我也想摆脱反斜杠。

下面是一些代码:

local_action:
    module: replace
    path: "/tmp/{{ ambiance }}/{{ seed }}DEFAULT.j2"
    regexp: "{{ item.regexp1 }}"
    replace: "{{ item.replace }}"
  with_items: 
    - { regexp1: '^DBHOST.*$', replace: 'DBHOST = {% raw %}{{ databasehost }}{% endraw %}' }
    - { regexp1: '^GLOBALHOST.*$', replace: 'GLOBALHOST = {% raw %}{{ global_hostname }}{% endraw %}' }

我期望结果如下:

DBHOST = {{ satabasehost }}
GLOBALHOST = {{ global_hostname }}

有什么建议/想法吗?

1 个答案:

答案 0 :(得分:1)

{% raw %}{{ databasehost }}{% endraw %}应该可以工作。

您也可以使用{{ '{{ databasehost }}' }}作为替代。