Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ansible中循环嵌套字典?_Ansible_Jinja2 - Fatal编程技术网

如何在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'}"