Ansible 在角色执行期间为其他主机执行任务

Ansible 在角色执行期间为其他主机执行任务,ansible,Ansible,我尝试在主机上运行角色(Ansistrano),这很好: --- - name: perform role hosts: host_one roles: - ansistrano 我可以指定角色中包含的其他剧本: ansistrano_specify_playbook: playbook.yml 但是,现在我必须为另一个主机执行一个任务,这是角色执行过程中剧本的一部分。我无法通过导入剧本实现这一点 - name: include task for other host

我尝试在主机上运行角色(Ansistrano),这很好:

---
- name: perform role
  hosts: host_one
  roles: 
    - ansistrano
我可以指定角色中包含的其他剧本:

ansistrano_specify_playbook: playbook.yml
但是,现在我必须为另一个主机执行一个任务,这是角色执行过程中剧本的一部分。我无法通过
导入剧本
实现这一点

- name: include task for other host
  import_playbook: other_host.yml
因此,我希望在此角色执行期间为另一台主机执行单个任务。无法在时使用
,因为无法编辑角色


编辑:


注意:第二台主机在执行期间不在播放/资源清册中。因此,
delegate\u to
将不起作用。

要将单个主机委派给另一个主机,请使用

例如:

- name: include task for other host
  import_tasks: other_host_tasks.yml
  delegate_to: other_host
这里,
other_host
必须是清单中该主机的
inventory_主机名

更新:
要在播放期间将主机添加到资源清册,请使用


或者,您可以操作资源清册文件本身,然后使用模块。

要将单个主机委托给另一台主机,请使用

例如:

- name: include task for other host
  import_tasks: other_host_tasks.yml
  delegate_to: other_host
这里,
other_host
必须是清单中该主机的
inventory_主机名

更新:
要在播放期间将主机添加到资源清册,请使用


或者,您可以操作资源清册文件本身,然后使用该模块。

声明“
其他主机必须……包含在剧本限制的任何组中”
”是错误的。该示例适用于未包含在任何组中的其他主机。@VladimirBotka我编辑了我的响应,以避免混淆,但是如果仅限于单个主机,或者
其他主机
在一个组中,该怎么办。我在回答中的意思是,如果你把
其他主机
放在一个组中,那么你需要将其包含在任何限制中,如果有限制的话。我知道在包含其他剧本和使用委派时使用限制时偶尔会遇到问题。截至“
我知道在包含其他剧本和使用委派时使用限制时偶尔会遇到问题。”。有链接吗?我已经更新了我原来的问题。抱歉,我不够清楚。声明“
其他主机必须…包括在剧本限制的任何组中”
”是错误的。该示例适用于未包含在任何组中的其他主机。@VladimirBotka我编辑了我的响应,以避免混淆,但是如果仅限于单个主机,或者
其他主机
在一个组中,该怎么办。我在回答中的意思是,如果你把
其他主机
放在一个组中,那么你需要将其包含在任何限制中,如果有限制的话。我知道在包含其他剧本和使用委派时使用限制时偶尔会遇到问题。截至“
我知道在包含其他剧本和使用委派时使用限制时偶尔会遇到问题。”。有链接吗?我已经更新了我原来的问题。抱歉,我不够清楚。是否可以临时或永久将其添加到资源清册?如何在任务执行期间将主机临时添加到资源清册?是否可以临时或永久将其添加到资源清册?如何在任务执行期间将主机临时添加到资源清册?