清单文件的 Ansible 循环(二维列表)

Ansible loop over inventory file (two dimensional list)

我想用 ansible playbook 从清单文件中解析一个二维列表

清单文件:.ini 会有一个 mac 和 IP 列表

mac1=b8:27:eb:12:53:1b ip1=192.168.8.101
mac2=b8:27:eb:f1:65:32 ip2=192.168.8.102
...

并且 ansible 任务是每次在这种形式的`/etc/ethers``文件中添加一行

b8:27:eb:f1:65:32 192.168.8.102

这是任务

- name: Assign static IPs to MACs
  lineinfile:
    path: /etc/ethers
    line: "{{  mac  }} {{  ip  }}"
    mode: 0644
  loop: "{{ listname }}"
  become: yes

关于如何在库存中设置我的列表以使其与剧本一起使用,请提供任何建议? 谢谢!

我会将列表作为变量添加到 group_var 文件夹或您的剧本中。

list:
  - mac: b8:27:eb:12:53:1b
    ip: 192.168.8.101
  - mac: b8:27:eb:f1:65:32
    ip: 192.168.8.102

您的任务可能如下所示:

- name: Assign static IPs to MACs
  lineinfile:
    path: /etc/ethers
    line: "{{  item.mac  }} {{  item.ip  }}"
    mode: 0644
  loop: "{{ list }}"
  become: yes