GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Handler in Ansible Playbook

In Ansible ist ein Handler genau wie jede andere Aufgabe, wird aber nur ausgeführt, wenn er aufgerufen oder benachrichtigt wird. Es wird aktiv, wenn auf dem verwalteten Host eine Änderung vorgenommen wurde. Handler werden zum Initiieren einer sekundären Änderung verwendet, z. B. zum Starten oder Neustarten eines Dienstes nach der Installation oder sogar zum erneuten Laden eines Dienstes, nachdem einige Änderungen an den Konfigurationsdateien vorgenommen wurden. In diesem Leitfaden werden wir mehr Licht auf Ansible-Handler werfen. Wir werden lernen, wie man Handler im Ansible Playbook verwendet.

Ansible Playbook-Datei mit einem Handler

Um besser zu verstehen, wie Handler funktionieren, nehmen wir ein Beispiel für eine Playbook-Datei – install_apache.yml – die den Apache-Webserver installiert und später den Apache-Dienst neu startet. Im folgenden Beispiel wird der Handler benachrichtigt, den Apache-Dienst bald nach der Installation neu zu starten. Dies wird wie gezeigt mit dem Notify-Modul erreicht. Beachten Sie, dass der „Notify“-Name wie erwähnt mit dem Handler-Namen übereinstimmen sollte, da Sie sonst auf Fehler in Ihrer Playbook-Datei stoßen.

---
- hosts: staging
  name: Install
  become: yes
  tasks:
          - name: Install Apache2 on  Ubuntu server
            apt:
                    name: apache2
                    state: present
                    update_cache: yes
            notify:
                    - Restart apache2

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

Lassen Sie uns nun die Playbook-Datei ausführen.

$ ansible-playbook /etc/ansible/install_apache.yml -K

Aus der Ausgabe können Sie sehen, dass der Handler direkt nach der Aufgabe ausgeführt wird.

Mehrere Aufgaben mit mehreren Handlern

Darüber hinaus können wir mehrere Aufgaben haben, die mehrere Handler aufrufen. Betrachten Sie die Playbook-Datei unten.

Hier müssen 2 Aufgaben ausgeführt werden:

  • Installieren des Apache-Webservers
  • Zulassen von HTTP-Datenverkehr auf der UFW-Firewall.

Nachdem die Aufgaben erfolgreich ausgeführt wurden, habe ich jeden der Handler mit dem Modul „benachrichtigen“ aufgerufen, wie unten gezeigt. Der erste Handler startet Apache neu und der zweite lädt die UFW-Firewall neu.

---
- hosts: staging
  name: Install
  become: yes
  tasks:
         - name: Install Apache2 on  Ubuntu server
           apt:
                   name: apache2
                   state: present
                   update_cache: yes

         - name: Allow HTTP traffic on UFW firewall
           ufw:
                   rule: allow
                   port: http
                   proto: tcp

           notify:
                   - Restart apache2
                   - Reload ufw firewall
  handlers:
          - name: Restart apache2
            service:
                    name:  apache2
                    state: restarted

          - name: Reload ufw firewall
            ufw:
                    state: enabled

Wenn die Playbook-Datei ausgeführt wird, werden beide Handler direkt nach der Installation von Apache von Ansible ausgeführt und HTTP-Datenverkehr wird auf der Firewall zugelassen.

Die sekundären Aktionen, die hier von den Handlern ausgeführt werden, sind:

  • Apache neu starten
  • Firewall aktivieren und neu laden, damit die vorgenommenen Änderungen wirksam werden.

Schlussfolgerung

Wie Sie gesehen haben, sind Handler genau wie normale Aufgaben, nur dass auf sie mit einem global eindeutigen Modul namens „notify“ verwiesen wird. Wenn ein Handler nicht benachrichtigt wird, kann er nicht ausgeführt werden. Denken Sie daran, dass alle Handler ausgeführt werden, nachdem alle Aufgaben abgeschlossen wurden.

Auch lesenSo erstellen Sie Ansible-Rollen und verwenden sie im Playbook


Linux
  1. Wie ich Ansible und Anacron für die Automatisierung verwende

  2. So verwenden Sie Ansible zum Einrichten der Systemüberwachung mit Prometheus

  3. So installieren und verwenden Sie Ansible unter Debian 11

  4. So erstellen Sie ein Ansible-Playbook

  5. So übergeben Sie zusätzliche Variablen an ein Ansible-Playbook

So erstellen und verwenden Sie benutzerdefinierte Fakten in Ansible

Erste Schritte mit Ansible Playbooks

So definieren und verwenden Sie Handler in Ansible Playbooks

So verwenden Sie die Jinja2-Vorlage in Ansible

Wie man Ansible verwendet, um Vim zu konfigurieren

So verwenden Sie Ansible zum Senden einer E-Mail mit Google Mail