如何在ansible中循环嵌套字典?
我怎样才能反复阅读这本词典如何在ansible中循环嵌套字典?,ansible,jinja2,Ansible,Jinja2,我怎样才能反复阅读这本词典 #要循环的嵌套字典: 变量: 命令: 第一组: cmd1: run:foo cmd2: 跑步:酒吧 第2组: cmd3: 跑步:动物园 #预期循环: -组1,cmd1={…} -组1,cmd2={…} -组2,cmd4={…} 我尝试使用dict2item和with_nested的各种组合,但到目前为止,我无法实现这一目标,我真的希望避免在include任务中使用循环,或者编写一个进行扁平化的python模块 我仍然希望有一种纯粹可行的方法来完成它。可以循环包含在包
#要循环的嵌套字典:
变量:
命令:
第一组:
cmd1:
run:foo
cmd2:
跑步:酒吧
第2组:
cmd3:
跑步:动物园
#预期循环:
-组1,cmd1={…}
-组1,cmd2={…}
-组2,cmd4={…}
我尝试使用dict2item和with_nested的各种组合,但到目前为止,我无法实现这一目标,我真的希望避免在include任务中使用循环,或者编写一个进行扁平化的python模块
我仍然希望有一种纯粹可行的方法来完成它。可以
循环包含在包含的任务中的任务。例如文件
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'}"