Ansible收集有关当前角色中未包含的主机的事实

Ansible收集有关当前角色中未包含的主机的事实,ansible,Ansible,我目前正在编写一个ansible角色,应用于名为master的组。此角色需要从组worker访问某些HostVar。但是ansible没有对工作者组的子级执行事实检查,因为角色本身应用于主组 有没有关于如何以“干净”的方式解决这个问题的想法 - name: Configure masters hosts: master roles: - master 您只需从所需的机器中收集事实,然后才能访问它们: - name: Gather facts from workers hos

我目前正在编写一个ansible角色,应用于名为
master
的组。此角色需要从组
worker
访问某些HostVar。但是ansible没有对
工作者
组的子级执行事实检查,因为角色本身应用于主组

有没有关于如何以“干净”的方式解决这个问题的想法

- name: Configure masters
  hosts: master
  roles:
    - master

您只需从所需的机器中收集事实,然后才能访问它们:

- name: Gather facts from workers
  hosts: worker

- name: Configure masters
  hosts: master
  roles:
    - master

这只是回答你的直接问题。根据收集特定群体的事实而拥有一个角色(根据定义应该是可移植的)是设计问题的征兆。

是的,你是对的,我还没有考虑过这个设计缺陷。我将尝试你的解决方案,然后重构它。我尝试了你的解决方案,它是有效的。但我仍将对其进行重构以消除设计缺陷:)Thnx注意,收集事实阶段只调用
设置
模块。如果需要的话,您可以在任务中使用delegate_to在给定的组上手动执行此操作。谢谢您的提示。但在我重构之后,我不再这么做了