繁体   English   中英

Ansible/Jinja2 嵌套 escaping

[英]Ansible/Jinja2 nested escaping

有没有办法嵌套 jinja2 模板的 escaping ?

  replace:
    path: /etc/my_file
    regexp: '^my_var = ""'
    replace: !unsafe "my_var = {{getv '/{{ variable}}/my_dir/my_file'}}"

我想用my_var = {{getv '/staging/my_dir/my_file'}}替换my_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
                     }}"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM