Ansible 的 Jinja 模板

Jinja templating for Ansible

我有一个模板可以对 sudoers 执行以下操作:

{% for a in  cde_admins  %}
User_Alias  CDEADMIN = {{ a }}
{% endfor %}

我定义了变量:

cde_admins:
  - foo
  - bar

我正在寻找一种可以遍历循环并在 foo 之后添加 , 的方法。所以它基本上看起来像这样当我 运行 Ansible:

User_Alias  CDEADMIN = foo, bar

我尝试了一些方法,比如在 Jinja2 语法中添加 join(","),但所做的只是:

User_Alias  CDEADMIN = f,o,o
User_Alias  CDEADMIN = b,a,r

有人可以指出正确的方向来制作它所以它只是在 foo 的末尾添加一个逗号吗?

您应该使用 join 过滤器,但在原始列表上,而不是在项目上:

User_Alias CDEADMIN = {{ cde_admins|join(', ') }}

只有上面这行,没有for循环。