是否可以从 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
属性 是调用处理程序的正确方法。您为什么要尝试以其他方式做到这一点?
我正在角色内部开发一个 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
属性 是调用处理程序的正确方法。您为什么要尝试以其他方式做到这一点?