Ansible-Aufgabe löst keine Handler aus

Ansible-Aufgabe löst keine Handler aus

Ich habe Probleme, eine Aufgabe innerhalb einer Ansible-Rolle dazu zu bringen, Handler auszulösen. Hier sind die Dateien, die ich verwende:

roles/services/tasks/postgresql.ymlzeigt an

- name: install postgresql packages
  apt: name={{ item }} state=present
  sudo: yes
  with_items:
  - postgresql
  - libpq-dev
  - python-psycopg2
  notify:
  - set postgres password
  - configure md5 security
  - restart postgres server

roles/services/handlers/main.ymlzeigt an

- name: set postgres password 
  sudo: yes
  sudo_user: postgres
  postgresql_user: name=postgres password=newpass

- name: configure md5 security
  sudo: yes
  copy: src=pg_hba.conf dest=/etc/postgresql/9.3/main/pg_hba.conf group=postgres owner=postgres backup=yes

- name: restart postgres server
  sudo: yes
  service: name=postgresql enabled=yes state=restarted

Wenn ich das Playbook ausführe, ist die Aufgabe erfolgreich und bestätigt, dass sich der Status geändert hat, aber die Handler werden nicht ausgelöst. Dies ist die letzte Aufgabe in dieser Rolle, und wenn sie abgeschlossen ist, fährt Ansible mit der ersten Aufgabe in der nächsten Rolle in meinem Playbook fort:

TASK: [services | install postgresql packages] ******************************** 
changed: [IP.REMOVED.##] => (item=postgresql,libpq-dev,python-psycopg2)

TASK: [passenger | install passenger gem] ************************************* 

Ich habe versucht, die Einrückung auf verschiedene Weise zu ändern, ohne Erfolg. Ich hoffe, dass jemand mit einem frischen Blick erkennt, was ich übersehe.

Antwort1

Möglicherweise warten Sie nicht lange genug. Ansible wartet so lange wie möglich auf die Handler. Wenn Sie alle Handler ausführen möchten, die bereits in der Warteschlange stehen, versuchen Sie

 - meta: flush_handlers

was ich sehr praktisch finde. Wenn ich beispielsweise ein Debian-Paket installiere, möchte ich, dass die Daemons sofort beendet werden. Deshalb füge ich den Metabefehl direkt nach der Paketinstallation hinzu und Ansible lässt mich nicht warten.

verwandte Informationen