是否可以从 ansible 模块中对处理程序进行排队?

Is it possible to queue a handler from within an ansible module?

我正在角色内部开发一个 ansible 模块(即模块位于角色的 library 目录中)。我想知道 是否可以从模块中对处理程序进行排队?

这是我想做的事情的示例,但没有在任务中使用 notify 位。

- name: build and install my application
  custom_module:
    path=/opt/web_app
  notify:
    - restart web server

理想情况下,我希望 custom_module 以某种方式排队到处理程序,以便使用如下所示:

- name: build and install my application
  custom_module:
    path=/opt/web_app

我很确定这种事情是不可能的。实际上,模块是 Ansible 复制到远程主机的独立应用程序,使用提供的参数执行,然后在继续下一个模块之前解释退出值和输出。当一个模块在远程主机上运行时,它不知道主节点上 运行 的 Ansible 进程,因此它无法挂钩回它。在您的剧本中使用 notify 属性 是调用处理程序的正确方法。您为什么要尝试以其他方式做到这一点?