簡體   English   中英

如何使用Ansible注冊遠程主機的事實?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM