要从动态清单中定义的主机访问角色/主机间的事实,可以使用Ansible的facts模块来收集主机的事实。以下是一个使用AWS动态清单和Ansible facts模块的示例代码:
---
- name: Collect facts from AWS dynamic inventory
hosts: all
gather_facts: false
tasks:
- name: Gather facts
ansible.builtin.setup:
gather_subset: all
- name: Access facts from hosts
hosts: all
gather_facts: false
tasks:
- name: Print facts of all hosts
debug:
var: hostvars[item]['ansible_facts']
loop: "{{ groups['all'] }}"
在这个示例中,第一个playbook用于收集主机的事实,而第二个playbook用于访问这些事实。这两个playbook都使用了gather_facts: false
,因为我们不需要Ansible自动收集事实。
收集主机事实的任务使用了Ansible的setup
模块,并将gather_subset
参数设置为all
,以收集所有的主机事实。然后,我们可以使用hostvars
变量来访问主机的事实。
在第二个playbook中,我们使用了debug
模块来打印所有主机的事实。我们使用了hostvars[item]['ansible_facts']
来访问每个主机的事实,并通过loop
参数循环遍历所有主机。
请注意,这个示例假设您已经配置了适当的AWS动态清单,并且您拥有对主机的访问权限。
希望这个示例能帮助到您!