每个列表的第一项附加到 ansible playbook 中的另一个列表

First item of each list appended to another list in ansible playbook

以上我好像做不到。

---
...
  vars:
    sg:
      - hostname: test26081
        skip: this1
      - hostname: test26082
        skip: this2

    - set_fact:
        sg_dest: "{{ sg[0]['hostname'] }}"

我上面的解决方案只会将第一个主机名 (test26081) 附加到我的 set_fact,我想包括第二个主机名 test26082,这样我只有一个简单的主机名列表。我试过各种方法都无济于事。

我无法对第二个值进行硬编码 "{{ sg[1]['hostname'] }}",因为它需要针对新条目进行缩放。

您可以在 set_fact 任务中循环遍历列表 sg 并将其附加到新列表 (sg_dest)。

--- 
- hosts: localhost
  vars:
    sg:
    - hostname: test26081
      skip: this1
    - hostname: test26082
      skip: this2
  tasks: 
  - debug: var=sg
  - name: Initialize an empty list for our hostnames
    set_fact:
      sg_dest: []
  - set_fact:
      sg_dest: "{{ sg_dest + [ item.hostname ] }}"
    with_items: "{{ sg }}"
  - debug: var=sg_dest