如何翻阅这本词典?
# nested dictionary to loop over:
vars:
commands:
group1:
cmd1:
run: foo
cmd2:
run: bar
group2:
cmd3:
run: zoo
# expected loop:
- group1, cmd1={...}
- group1, cmd2={...}
- group2, cmd4={...}
我尝试使用dict2items和with_nested的各种组合,但到目前为止我还无法实现该目标,我真的想避免使用包含任务的循环或编写进行展平的python模块。
我仍然希望有一种完全可行的方法。
答案 0 :(得分:1)
loop
可能包含included_tasks
个任务。例如文件
shell> cat inner-loop.yml
- debug:
msg: "{{ outer_item.key }}, {{ item.key }}={{ item.value }}"
loop: "{{ outer_item.value|dict2items }}"
包含在任务中
- include_tasks: inner-loop.yml
loop: "{{ commands|dict2items }}"
loop_control:
loop_var: outer_item
给予
"msg": "group1, cmd1={u'run': u'foo'}"
"msg": "group1, cmd2={u'run': u'bar'}"
"msg": "group2, cmd3={u'run': u'zoo'}"