Ansible/Jinja2嵌套转义
有没有办法让jinja2模板嵌套转义Ansible/Jinja2嵌套转义,ansible,jinja2,ansible-template,Ansible,Jinja2,Ansible Template,有没有办法让jinja2模板嵌套转义 replace: path: /etc/my_file regexp: '^my_var = ""' replace: !unsafe "my_var = {{getv '/{{ variable}}/my_dir/my_file'}}" 我想用我的{getv'/staging/my_dir/my_file'}替换我的{u var= 在这种情况下,{{getv}}不应该是模板化的外括号,而应该是内括号内的{{variable}。
replace:
path: /etc/my_file
regexp: '^my_var = ""'
replace: !unsafe "my_var = {{getv '/{{ variable}}/my_dir/my_file'}}"
我想用我的{getv'/staging/my_dir/my_file'}替换我的{u var=
在这种情况下,{{getv}}不应该是模板化的外括号,而应该是内括号内的{{variable}。可以连接替换字符串。比如说
vars:
lbrackets: "{{ '{{' }}"
rbrackets: "{{ '}}' }}"
quote: "'"
tasks:
- replace:
path: /etc/my_file
regexp: '^my_var = ""(.*)$'
replace: "{{ 'my_var = ' ~
lbrackets ~ 'getv ' ~ quote ~
'/staging/my_dir/my_file' ~ quote ~ rbrackets
}}"
每当您在Ansible中遇到冲突字符的问题时,经验法则是将它们作为字符串输出到Jinja表达式中。见: