[英]How to register facts of remote host using Ansible?
我想將遠程主機的事實注冊到var中,然后在下一個任務中迭代var。 但是我堅持用主機名[hostname:IP]注冊事實的第一項任務。 以下是我的代碼:
- name: get facts
setup:
delegate_to: "{{item}}"
delegate_facts: True
with_items: "{{ groups['hadoop'] }}"
register: hadoop_ips
tags:
- etc-hosts
- debug: msg={{ hadoop_ips }}
tags:
- etc-hosts
如果要獲取有關主機的Ansible事實,則應在主機上收集事實后使用hostvars
訪問它們。
如果您的劇本已經收集了您感興趣的主機的事實,或者您正在使用事實緩存 ,並且緩存保存有關主機的事實,那么您可以直接使用hostvars
。 如果沒有,那么您將需要像在問題中一樣使用委派的setup
任務。
因此,如果您想要獲取當前playbook未定位的另一個組中某些主機的默認IP地址,您可能會遇到以下情況:
- name: get facts
setup:
delegate_to: "{{item}}"
delegate_facts: True
with_items: "{{ groups['hadoop'] }}"
tags:
- etc-hosts
- debug: var={{ hostvars[item]['ansible_eth0']['ipv4']['address'] }}
with_items: "{{ groups['hadoop'] }}"
tags:
- etc-hosts
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.