Ab Ansible 2.2 gibt es eine geeignete Lösung für dieses Problem.
Handler können auch allgemeine Themen „anhören“, und Aufgaben können diese Themen wie folgt benachrichtigen:
handlers:
- name: restart memcached
service: name=memcached state=restarted
listen: "restart web services"
- name: restart apache
service: name=apache state=restarted
listen: "restart web services"
tasks:
- name: restart everything
command: echo "this task will restart the web services"
notify: "restart web services"
Diese Verwendung erleichtert das Auslösen mehrerer Handler erheblich. Außerdem werden Handler von ihren Namen entkoppelt, wodurch es einfacher wird, Handler zwischen Spielbüchern und Rollen zu teilen
Speziell für die Frage sollte dies funktionieren:
- name: Check if restarted
shell: check_is_started.sh
register: result
listen: Restart processes
- name: Restart conditionally step 2
service: name=service state=restarted
when: result
listen: Restart processes
und benachrichtigen Sie in der Aufgabe die Handler über "Prozesse neu starten".
http://docs.ansible.com/ansible/playbooks_intro.html#handlers-running-operations-on-change