在 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
我在 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