Warum funktioniert ansible notify nicht?

12

Ich lerne ansible und habe ein einfaches Spielbuch geschrieben, aber ich verstehe nicht oder was ich falsch mache, dass der Handler nicht funktioniert! Bitte hilf mir.

Mein Spielbuch:

- hosts: HA
  gather_facts: False
  tasks:
    - name: Installs pacemaker
      yum: pkg=pacemaker,pcs,resource-agents state=latest
      notify:
         - pcsd start

  handlers:
    - name: pcsd start
      systemd: name=pcsd state=started

Er übersprang Benachrichtigung:

PLAY [HA] **********************************************************************

TASK [Installs pacemaker] ******************************************************
ok: [test-ha2]
ok: [test-ha1]

PLAY RECAP *********************************************************************
test-ha1                   : ok=1    changed=0    unreachable=0    failed=0
test-ha2                   : ok=1    changed=0    unreachable=0    failed=0
Amkgi
quelle

Antworten:

22

Handler werden nur für Aufgaben ausgelöst, die einen changedStatus melden . In der Ausgabe Ihres Spiels sehen Sie den Status ist ok, was in diesem Fall bedeutet, dass keine neuen Pakete installiert oder aktualisiert wurden (da state = latest)

Es würde also funktionieren, wenn eines der Pakete nicht bereits installiert worden wäre.

Anstelle von state startedwürde ich jedoch state verwenden restarted, da Sie immer auf die neuesten Pakete in Ihrer Aufgabe aktualisieren (state = latest). Wenn ein Paket aktualisiert wird, sollten Sie den Dienst auch neu starten.

Udondan
quelle