playbook example commands ansible ansible-handlers

example - ansible roles



¿Cómo forzar que el controlador se ejecute antes de ejecutar una tarea en Ansible? (1)

Tengo un libro de jugadas que debería configurarse en una IP específica, y que se conecte a esta aplicación para configurar cosas dentro.

Tengo un problema: necesito reiniciar la aplicación después de haber cambiado algo en la configuración de la aplicación, y si no reinicio la aplicación, la conexión falló (no hay conexión porque la aplicación no sabe nada sobre la nueva configuración con la nueva dirección IP I '' Estoy tratando de acceder).

Mi libro de jugadas actual:

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

Necesito forzar el controlador para que se ejecute si configure_app cambió antes de ejecutar ''Cambiar datos en la aplicación''.


Si desea forzar que el controlador se ejecute entre las dos tareas en lugar de al final de la partida, debe poner esto entre las dos tareas:

- meta: flush_handlers

Ejemplo tomado de la documentation ansible:

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

Tenga en cuenta que esto hará que todos los controladores pendientes se ejecuten en ese punto, no solo ese específico.