Handler: Ausführen von Vorgängen bei Änderungen

Handler: Ausführen von Vorgängen bei Änderungen

Ist es möglich, in einer Rolle „Post-Tasks“ zu haben? Also in einer Rolle definierte Tasks, die am Ende des Spiels ausgeführt werden?

Ich habe beispielsweise eine commonRolle, von der die meisten anderen Rollen abhängen. Die commonRolle bietet einige grundlegende Dinge, um Wiederholungen zu vermeiden, wie z. B. Optimierungen an der Yum-Konfiguration usw.

Ich merke dasSpielbücher habenpost_tasks. Ich habe mich gefragt, ob es möglich ist, Post-Aufgaben in den Rollen selbst zu definieren?


Aktualisieren: Zitat ausAnsible-Dokumentation:

Handler: Ausführen von Vorgängen bei Änderungen

...

Diese Benachrichtigungsaktionen werden am Ende jedes Aufgabenblocks in einem Playbook ausgelöst und werden nur einmal ausgelöst, auch wenn eine Benachrichtigung durch mehrere verschiedene Aufgaben erfolgt.

...

Rollen werden später beschrieben. Es ist erwähnenswert, dass Handler automatisch zwischen den Abschnitten „pre_tasks“, „roles“, „tasks“ und „post_tasks“ verarbeitet werden.

...

Offensichtlich ist dieser Teil der Dokumentation entweder irreführend oder schlichtweg gelogen (= es liegt ein Fehler darin). Es scheint, dass Handler gefeuert werdenam Ende jedes Spiels, zwischen tasksund post_tasks, wie der folgende einfache Test zeigt:

- name:         Handlers test
  hosts:        all
  gather_facts: no
  roles:
    - some-role
    # some-role depends on common
  tasks:
    - name:  This a task
      shell: /bin/true
  post_tasks:
    - name:  This is a post task
      shell: /bin/true

Und die gemeinsame Rolle:

# tasks/main.yml

- name:   Registering handler
  shell:  /bin/true
  notify: this is a handler


#handlers/main.yml

- name:   this is a handler
  shell:  /bin/true

(Da niemand eine Antwort gegeben hat, kann ich keine akzeptieren, aber es fühlte sich nicht richtig an, meine eigene Frage mit Tipps aus den Kommentaren zu beantworten ...)

Antwort1

Dieses Verhalten wird durch einen Fehler in Ansible 1.9.x verursacht und wird derzeit hier verfolgt:https://github.com/ansible/ansible/issues/12575

verwandte Informationen