通过循环使用主机清单中的变量

时间:2018-11-06 06:10:40

标签: ansible

  

这不是使用Ansible以前版本的任何问题的重复。答案不是loop

我有以下主机清单:

[workers]
worker-vm-0 private_ip=10.240.0.20
worker-vm-1 private_ip=10.240.0.21
worker-vm-2 private_ip=10.240.0.22

使用private_ip时,我想访问loop变量,例如:

- name: Loop through private_ip
  loop: "{{ groups['workers'] }}"
  shell: echo "{{ item }},{{ item['private_ip'] }}"

{{ item }}没问题-可以按预期工作。

要获取变量,我同时尝试了{{ item['private_ip'] }}{{ item.private_ip }}-我都遇到了未定义的变量错误。

使用新的loop时如何访问主机清单的变量?

1 个答案:

答案 0 :(得分:1)

使用 hostvars

- name: Loop through private_ip
  loop: "{{ groups['workers'] }}"
  debug: msg="{{ item }},{{ hostvars[item].private_ip }}"