过滤器前的Ansible字符串concat

Bre*_*dly 2 jinja2 ansible

我在Ansible模板中遇到一个问题,我想从用户输入到剧本中的两个不同变量中创建HTTP基本身份验证凭据。

我尝试做的第一件事是:

basic_auth: "{{ user + ':' + pass | b64encode }}"
Run Code Online (Sandbox Code Playgroud)

但是我最终得到了:

basic_auth: "user:<BASE64_ENCODED>"
Run Code Online (Sandbox Code Playgroud)

我怎样才能让Jinja连接这些字符串,然后将其通过我的过滤器?

Bre*_*dly 5

相当基本的解决方案:用括号括起来。

basic_auth: "{{ (user + ':' + pass) | b64encode }}"
Run Code Online (Sandbox Code Playgroud)

我认为这将允许我嵌套多层过滤器。

complex: "{{ ((user + ':' + pass) | b64encode) | complex_filter}}"
Run Code Online (Sandbox Code Playgroud)