Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 - Fatal编程技术网

试图在ansible中查询子词典

试图在ansible中查询子词典,ansible,Ansible,我现在已经读了一些关于这方面的主题,但我发现很难理解如何访问子字典,就像我在剧本中使用字典一样。在本例中,字典是ansible\u net\u接口 例如,我可以使用以下代码获取所有接口及其特定信息的列表: - name: test debug debug: msg: - "{{ item.key }}:" - " description: {{ item.value.description | default('', true)

我现在已经读了一些关于这方面的主题,但我发现很难理解如何访问子字典,就像我在剧本中使用字典一样。在本例中,字典是ansible\u net\u接口

例如,我可以使用以下代码获取所有接口及其特定信息的列表:

- name: test debug
  debug:
    msg:
      - "{{ item.key }}:"
      - "  description: {{ item.value.description | default('', true) }}"
      - "  ip_address: {{ item.value.ipv4.0.address | default('', true) }}"
      - "  subnet: {{ item.value.ipv4.0.subnet | default('', true) }}"
  when:
      - item.key != "Async0/0/0"
      - item.key != "Dialer1"
  with_dict: "{{ ansible_net_interfaces }}"
但我不明白的是,如何以相同的方式同时访问每个接口的子字典。在这个例子中,我使用了一个过滤器来分配一个空值(如果不存在),以防止播放退出,但我想知道的是,如何以与使用“item.key”引用每个接口相同的方式引用每个子字典中的键/值对。我的理由是,我可以循环并捕获每个值,而无需事先知道分配了哪些键值对。在这种情况下,它最终可能不实用,但无论如何,这是我想知道的

到目前为止我已经尝试过的事情: 与_嵌套(可能仅适用于列表而不适用于字典?) 带有\u项和单独的自定义接口列表 带_子元素 上述各项的各种组合和语法

我正在尝试做的示例:

- name: second loop
  debug:
    for interfaces in {{ ansible_net_interfaces }}:
      msg: "{{ ansible_net_interfaces[interfaces].item.key }}"  
我试图循环ansible_net_facts中的每个接口,并在该循环中列出该接口中的所有键/对


本质上,由于字典是一个数组,我如何定位子字典的索引-比如ansible_net_Interface(接口字典)中的项0(我认为是接口描述)的值。可能会显示一个示例,说明您希望代码看起来像什么(即使它不起作用)?我已经用一个示例进行了更新,我希望这能让它更清晰一些!我还是不知道你在找什么。当您说“列出该接口中的所有键/对”时,您的意思是要列出
.description
.ipv4
的值而不必指定它们吗?在任何情况下,如果您只是在打印数据,请尝试只打印
item.value
——这应该会显示其所有有效信息,但会显示所有信息。如果我想在一个界面中显示第一个键/对,我该怎么做?