在 Ansible 的列表中循环列表

Loop over list in list in Ansible

我在 Ansible 中有一个简单的多级列表:

        elements:
       - 'aaaa':
          - '1111'
          - '2222'
       - 'bbbb':
          - '3333'
          - '4444'

我的模板如下所示:

    {% for level1 in elements %}
      {% for level2 in level1 %}
          {{ level2 }}
      {% endfor %}
    {% endfor %}

输出为:

    aaaa
      bbbb

但我想要类似的东西:

aaaa: 1111 2222 bbbb: 3333 4444

如何修改这个 jinja joop 以获得这个结果?

所以基本上你必须遍历 items of level1.

更新的 Jinja2 Query

{%- for level1 in elements -%}
 {%- for key, value in level1.iteritems() -%}
     {{ key }}: {{ value|join(' ') }}
 {%- endfor -%}
{% if not loop.last %} {% endif %}
{%- endfor -%}

输出:

aaaa: 1111 2222 bbbb: 3333 4444

问:"想要类似"的东西

    aaaa: 1111 2222 bbbb: 3333 4444

答:下面的任务完成了工作

    - debug:
        msg: |
          {% for level1 in elements %}{{ level1.keys()|first }}:
          {%- for v in level1.values()|first %} {{ v }}
          {%- endfor %} {% endfor %}

给予

    aaaa: 1111 2222 bbbb: 3333 4444