Ansible Ignore-Fehler

Ansible Ignore Fehler



Beim Konfigurieren der Aufgabe auf einem anderen Hostgerät treten häufig Ansible-Fehler auf. Sie repräsentieren eindeutige und möglicherweise signifikante Systemzustände. Trotzdem kann es einige Fehler geben, die wir vermeiden möchten, damit die Aufgaben auch ausgeführt werden und die Ausgabe anzeigen, wenn sie erfolgreich ausgeführt wurden. In diesem Artikel sprechen wir über Ansible-Fehler und wie man sie ignoriert. Wir demonstrieren speziell eine Technik, um die Fehler mit Ansible zu unterdrücken und zu ignorieren.

Im Gegensatz zur Fehlerbeseitigung bedeutet das Vermeiden von Fehlern, die Aufgaben so weit fortzusetzen, wie die Aktivität im Ansible-Playbook davon unberührt bleibt. Das Ansible-Tool gibt eine Warnmeldung aus, wenn es eine Aufgabe oder ein Playbook beim Debuggen einer Aufgabe nicht abschließen kann. Es gibt mehrere Ursachen, aber es liegt an uns, sie zu identifizieren und eine Lösung zu finden. Leider können nicht alle Fehler behoben werden. Sie können die Fehler ignorieren, wenn Sie dies nicht möchten oder wenn Sie das Problem nicht lösen können.







Die Mehrheit der Controlling-Manager in Ansible verwendet diese Strategie, während sie sich in realen Szenarien mit den Zielhosts verbindet. Ansible beendet standardmäßig Aktivitäten auf einem Zielgerät und setzt Aktivitäten auf einigen anderen Servern fort, wenn es ein Ergebnis ungleich Null von einer Anweisung oder einen Fehler von einem Paket zurückgibt. Es gibt jedoch bestimmte Situationen, in denen Sie möglicherweise anders handeln möchten. Ein zurückgegebenes Ergebnis, das nicht Null ist, zeigt gelegentlich einen Fortschritt an. Oft möchten Sie vielleicht, dass die Verarbeitung auf einem Server angehalten wird, damit sie auf allen Hosts anhält.



Möglichkeiten, die Fehler in Ansible zu ignorieren

In Ansible werden verschiedene Methoden verwendet, um die Playbook-Aufgaben auszuführen, wenn der Aufgabenfehler angezeigt wird. Im Folgenden sind die verschiedenen Möglichkeiten aufgeführt, die bei der Ausführung der Aufgabe helfen, selbst wenn Ansible Fehler anzeigt:



1. Verwenden des Ignore_Errors=True-Befehls





Auch wenn die Aufgabe weiterhin fehlschlägt, wird das Playbook weiterhin ausgeführt, wenn Sie den Befehl ignore_errors=true am Ende der Aktivität angeben. Obwohl es sich um die Fertigstellung oder Misserfolge der Aufgabe kümmert, führt es dennoch die nachfolgende Aktivität aus. Wenn die Aktivität irgendwie nicht erfolgreich ist, wird mit der nächsten fortgefahren. Wenn die Aktivität erfolgreich ist, schließt sie danach einen Prozess ab.

2. Verwendung des Prüfmodus in Ansible



Verwenden Sie die booleschen Spezialvariablen, den Ansible-Prüfmodus, der auf True definiert wird, sobald Ansible in der Prüfmethode ist, um eine Aufgabe zu umgehen oder die Fehler einer Aufgabe zu ignorieren, wenn die Prüfmethodenversion von Ansible verwendet wird.

3. Verwenden des Failed=When-Befehls im Ansible Playbook

In Ansible können wir auch die Bedingung failed_when verwenden, um anzugeben, welcher „Fehler“ für jede Aktivität impliziert wird. Ähnlich wie bei allen Ansible-Bedingungsanweisungen werden die Listen zahlreicher failed_when-Kriterien mit einem impliziten kombiniert. Die Aufgabe schlägt also nur fehl, wenn alle Bedingungen erfüllt sind.

Voraussetzungen zum Ignorieren der Fehler in Ansible

Das Ansible-Konfigurationstool muss die notwendigen Kriterien erfüllen, um das konkrete Beispiel aufzunehmen:

  • Ein Ansible-Hauptserver oder wir können sagen, ein steuernder Server ist notwendig, damit wir die Befehle auf dem Zielgerät konfigurieren können.
  • Wir benötigen die lokalen Hosts, damit wir jeden von ihnen kontaktieren können, um die verschiedenen Möglichkeiten zum Ignorieren der Fehler in der Ansible-Software zu nutzen. Wir verwenden den lokalen Host in diesem Fall als Ziel-Remote-Server für die Dauer der Aktivität.
  • Wir schreiben die Playbooks, führen die Ansible-Befehle zum Ignorieren von Fehlern aus und verwenden das Ansible-Controller-Gerät, um die Ergebnisse auf entfernten Hosts zu verfolgen.

Um dem Lernenden zu helfen, das Prinzip der Verwendung des Ignore-Fehlers in einem Ansible-Playbook zu verstehen, implementieren wir das folgende Beispiel:

Beispiel: Verwenden des Ignore_Errors=True-Befehls

Dies ist das einfachste Beispiel, das Ansible für die Implementierung verwendet, bei dem wir mehrere Aufgaben in das Playbook aufnehmen und die Aufgaben mit dem Befehl „Fehler ignorieren“ ausführen. Dazu schreiben wir zunächst folgenden Code in das Ansible-Terminal:

[ Wurzel @ Meister ansibel ] # nanoignore_errors.yml

Nach dem Erstellen und Starten des Playbooksignore_errors.yml beginnen wir nun damit, die Befehle in das Playbook einzugeben. Zuerst verwenden wir die Option „hosts“ und übergeben die bereitgestellten Hosts als „localhost“. Wir geben den Wert „false“ in das Argument „Fakten sammeln“ ein, damit wir beim Ausführen des Playbooks keine zusätzlichen Informationen über den lokalen Host abrufen können.

Danach beginnen wir damit, jede Aufgabe, die wir erledigen möchten, unter der Option „Aufgaben“ aufzulisten. In der ersten Aufgabe zeigen wir das nicht vorhandene Dokument im Ansible-Verzeichnis an. Zuerst übergeben wir den Titel der Aufgabe, die wir umsetzen wollen. Dann verwenden wir die Befehlsoption und speichern das nicht vorhandene Textdokument und verwenden „ls“, damit wir den Befehl in der ersten Aufgabe ausführen können. Nach der ersten Aufgabe verwenden wir den Befehl ignore_errors=true, damit die Aufgabe, wenn die Aufgabe über der Ignore-Anweisung fehlschlägt, ignoriert und zur nächsten Aufgabe übergeht und sie ausführt.

Wir listen eine andere Aufgabe auf, die verwendet wird. Wenn die erste Aufgabe fehlschlägt, muss das Ansible-Tool die nächste Aufgabe ausführen. Dann verwenden wir den Debug-Parameter, um die Aufgabe im Playbook auszuführen.

- Hosts: localhost
sammeln_fakten: FALSCH
Aufgaben:
- name: Listen Sie einen nicht existierenden auf Datei
Befehl: ls nicht vorhanden.txt
Ignore_errors: WAHR

- Name: weitermachen Aufgabe nach dem Scheitern
debuggen:
Nachricht: 'Aufgabe nach Fehler fortsetzen'

Jetzt listen wir genügend Aufgaben auf, um den Befehl zum Ignorieren von Fehlern auszuführen und zu überprüfen. Jetzt beenden wir das Playbook und gehen zurück zum Hauptterminal. Danach führen wir das Playbook aus. Dafür verwenden wir die folgende Anweisung:

[ Wurzel @ Meister ansibel ] # ansible-playbookignore_errors.yml

Nach dem Ausführen des oben genannten Befehls erhalten wir die folgende Ausgabe. Wie Sie sehen, zeigt die erste Aufgabe, die eine nicht vorhandene Datei auflistet, einen Fehler an. Aber die zweite Aufgabe wird erfolgreich ausgeführt, weil wir die erste Aufgabe ignoriert haben, indem wir im Playbook den Parameterignor_error=true verwendet haben.

Abschluss

Wir haben gelernt, was der Ignore-Fehler in Ansible bedeutet. Wie es funktioniert, haben wir im Ansible Playbook besprochen. Wir haben auch die verschiedenen Möglichkeiten besprochen, den Fehler in Ansible zu ignorieren, während die Aufgaben ausgeführt werden. Wir haben ein Beispiel implementiert, damit jedes Konzept für den Benutzer klar ist.