1 handler
kraeml edited this page 2023-09-27 14:17:02 +00:00

Handler

Handler in Ansible dienen dazu, Aufgaben (Tasks) auszuführen, die nur dann aktiviert werden, wenn bestimmte vorherige Aufgaben in einem Playbook Änderungen auf einem Zielhost durchgeführt haben. Sie sind nützlich, um beispielsweise Dienste neu zu starten oder Konfigurationsdateien zu aktualisieren, nachdem eine Änderung vorgenommen wurde.

Hier ist ein einfaches Beispiel:

---
- name: Konfiguriere und starte den Webserver
  hosts: webserver
  tasks:
    - name: Aktualisiere die Konfigurationsdatei
      template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
      notify: Restart nginx

    - name: Stelle sicher, dass der Webserver läuft
      service:
        name: nginx
        state: started

  handlers:
    - name: Restart nginx
      service:
        name: nginx
        state: restarted

In diesem Playbook:

  1. Zwei Tasks werden ausgeführt, um die Nginx-Konfigurationsdatei zu aktualisieren und den Webserver zu starten.

  2. Der notify Parameter im ersten Task weist Ansible an, den Handler Restart nginx auszulösen, wenn die Konfigurationsdatei tatsächlich geändert wurde.

  3. Der Handler Restart nginx wird definiert, um den Nginx-Service neu zu starten, wenn er ausgelöst wird.

Wenn die Konfigurationsdatei geändert wird, wird der Handler Restart nginx ausgeführt, um den Nginx-Service neu zu starten. Wenn keine Änderungen vorliegen, wird der Handler übersprungen. Handler bieten also eine Möglichkeit, Aufgaben abhängig von Änderungen auf dem Zielhost auszuführen.