如何强迫处理程序运行之前,执行任务在 Ansible?

我有一个剧本,应该配置在指定的 IP,然后连接到这个应用程序配置内部的东西。

我有一个问题: 我需要重新启动应用程序后,我已经改变了应用程序配置的任何东西,如果我不重新启动应用程序,连接到它失败(没有连接,因为应用程序不知道新的配置与新的 IP 地址我试图访问)。

我现在的策略是:

tasks:
- name: Configure app
template: src=app.conf.j2 dest=/etc/app.conf
notify: restart app


- name: Change data in app
configure_app: host={{new_ip}} data={{data}}


handlers:
- name: restart app
service: name=app state=restarted

如果在执行“更改应用程序中的数据”之前 configure_app发生变化,我需要强制处理程序运行。

57951 次浏览

如果你想强迫处理器在两个任务之间运行,而不是在游戏结束的时候,你需要把这个放在两个任务之间:

- meta: flush_handlers

例子取自动态 文件:

tasks:
- shell: some tasks go here
- meta: flush_handlers
- shell: some other tasks

注意,这将导致 所有挂起处理程序在该点运行,而不仅仅是特定的处理程序。