defaults/main.yml
my_var: "[\"test\"]"
然后我将其呈现在一个模板中,例如 template.j2
MY_VARS="{{ my_var }}"
- name: "create .env from template"
template:
src: "templates/template.j2"
dest: ".env"
渲染结果为:
MY_VARS="["d"]"
有没有办法让 ansible 停止用 \"
替换 "
?
模板渲染的预期结果是:
MY_VARS="[\"d\"]"
答案 0 :(得分:1)
改变:
my_var: "[\"test\"]"
到:
my_var: "[\\\"test\\\"]"
或:
您可以使用以下作为模板:(未测试)
MY_VARS="{{ my_var|tojson|regex_replace('^\\\"|\\\"$','') }}"
答案 1 :(得分:1)
使用single-quotated style。引用:
| ...“\”和“””字符可以随意使用。
my_var: '[\"test\"]'
这是唯一需要的更改。您的代码运行良好
shell> cat .env
MY_VARS="[\"test\"]"