J'ai un livre de jeu qui doit configurer sur une adresse IP spécifiée, puis se connecter à cette application pour configurer des éléments à l'intérieur.
J'ai un problème: je dois redémarrer l'application après avoir modifié quoi que ce soit dans la configuration d'application, et si je ne redémarre pas l'application, la connexion à celle-ci échoue (aucune connexion car l'application ne sait rien de la nouvelle configuration avec la nouvelle adresse IP I ' m essayant d'accéder).
Mon playbook actuel:
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
Je dois forcer le gestionnaire à s'exécuter si configure_app
modifié avant l'exécution de 'Change data in app'.
Si vous voulez forcer le gestionnaire à s'exécuter entre les deux tâches au lieu de le faire à la fin du jeu, vous devez le placer entre les deux tâches:
- meta: flush_handlers
Exemple tiré de l'ansible documentation :
tasks:
- Shell: some tasks go here
- meta: flush_handlers
- Shell: some other tasks
Notez que cela entraînera tous les gestionnaires en attente à s'exécuter à ce point, pas seulement à celui-là.