如何在ansible中枚举列表?

How to enumerate list in ansible?

我有这样的结构:

addresses:
 - 192.168.1.1
 - 192.168.2.2
 - 192.168.3.3

我需要在任务中处理它们:

- tasks:
      - name: Iterating
      - template: src=template.j2 dest=/etc/addresses/{{index}}.conf
        with_items: addresses

但是我找不到任何方法来填充索引变量(或任何其他类似的技巧)。

注意:我知道 j2 模板中的索引,但我说的是任务。

您可以使用 with_indexed_items,另一个 Ansible 标准循环。

- tasks:
  - name: Iterating
    template: src=template.j2 dest=/etc/addresses/{{ item.0 }}.conf
    with_indexed_items: addresses

地址项可以在模板中访问为{{ item.1 }}