这不是使用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
时如何访问主机清单的变量?
答案 0 :(得分:1)
使用 hostvars
- name: Loop through private_ip
loop: "{{ groups['workers'] }}"
debug: msg="{{ item }},{{ hostvars[item].private_ip }}"