字典结构中的 Ansible 循环数组

Ansible loop array within dictionary structure

我有 ansible 版本 2.9.6 和以下结构:

  certificates:
    example1:
      - sub1.example1.org
      - sub2.example1.org
    example2:
      - sub1.example2.org
      - sub2.example2.org
    example3:
      - sub3.example3.org

现在我想遍历字典以获取证书的名称(密钥),然后通过数组获取域的名称以从中构建一个字符串,然后用于创建证书.

到目前为止我没有归档我想要的东西。我尝试使用 dict2items 获取名称和项目(数组),但如何从这里继续?

接下来我尝试使用 with_subelement,但我收到错误消息,指出项目未定义。

- name: with_dict -> loop (option 1)
  ansible.builtin.debug:
    msg: "Key: {{ item.key }} ###"
  with_subelements: 
    - "{{ certificates }}"
    - "{{item.1}}"

我怎样才能访问列表项?

谢谢和 最好的问候

毫克

例如

    - debug:
        msg: "{{ item.0.key }} {{ item.1 }}"
      with_subelements:
        - "{{ certificates|dict2items }}"
        - value

给出(删节)

  msg: example1 sub1.example1.org
  msg: example1 sub2.example1.org
  msg: example2 sub1.example2.org
  msg: example2 sub2.example2.org
  msg: example3 sub3.example3.org

使用循环而不是传统方式使用with_subelements:

    - name: with_subelements -> loop
      debug:
        msg: "{{ item.0.key }} {{ item.1 }}"
      loop: "{{ certificates | dict2items | subelements('value') }}"

添加新符号:

    - name: with_subelements -> loop
      debug:
        msg: "{{ item[0]['key'] }} {{ item[1] }}"
      loop: "{{ certificates | dict2items | subelements('value') }}"

给出(删节)

TASK [with_subelements -> loop]
    "msg": "example1 sub1.example1.org"
    "msg": "example1 sub2.example1.org"
    "msg": "example2 sub1.example2.org"
    "msg": "example2 sub2.example2.org"
    "msg": "example3 sub3.example3.org"