Zu den effektivsten und bekanntesten Python-basierten Dokumenten gehört Jinja2. Da dies dieselben Codierungssprachen wie Ansible verwendet, wird es am häufigsten von Ansible -Benutzern verwendet. Dies ist einer der Vorteile für IT -Profis auf unzählige Weise. Das Jinja2 -Dokument kann die ansiblen bedingten Strukturen verwenden. Immer wenn ein boolescher Zustand, der vom Entwickler geliefert wird. In einem ansiblen Spielbuch, basierend auf den Informationen über den Zielserver, einen If-Statement oder das Ergebnis einer früheren Aktion, möchten Sie möglicherweise einige alternative Aktionen ausführen oder unterschiedliche Ziele haben. Das grundlegende Strukturelement, das zur Beurteilung der Bedingungen verwendet wird, ist der Ausdruck „If“. Bei der Bewertung mehrerer Bedingungen wird der Ausdruck „If“ häufig während der Kombination mit den Befehlen „ELIF“ und „sonst“ verwendet. Wenn ein Parameter auftritt und nicht null ist oder wenn der Parameter den booleschen Ausdruck als „True“ hat, übersetzt sich eine bedingte If-Statement mit einem Eingabeparameter zu true. In einer einfacheren Erklärung wird der Ausdruck „If“ verwendet, um die Ausführung einer Sammlung von Aussagen zweimal einzuschränken, wenn eine bestimmte Bedingung erfüllt ist.
Syntax der „if“ -Sbund in Jinja2
Jinja2 hat, obwohl sie keine Sprache der Programmierung ist, eine Liste von Phrasen, die Sie einsetzen müssen, um das „Skript“ in das Ansible Playbook zu setzen. Diese werden einfach gemeinsam als Syntax bezeichnet und sie werden durch eine Reihe von Grundprinzipien strukturiert, mit denen die Benutzer ihre Ziele in den Begriffen, die sie verstehen kann.
Wir beginnen damit, eine lockige offene Klammer mit einem prozentualen Indikator zu verwenden. Das Schlüsselwort "If", ein reserviertes Wort in Jinja2, wird verwendet. Nachdem wir Bedingungen oder Ausdrücke geschrieben haben, schließen wir die Iffatement-Linie erneut mit dem prozentualen Symbol und schließen die lockige Klammer. Dann ist in der nächsten Zeile der Körper des „If“ -Konstichts geschrieben. Schließlich wird die Bedingung geschlossen, indem „Endif“ in die Eröffnungs- und Schließetags des If-Statements geschrieben wird. Wenn die angegebene Bedingung true. Wenn die Bedingung falsch ist, gibt sie falsche zurück.
% if (Zustand) %Voraussetzungen, die If-Statement in Jinja2 zu nutzen
Um den Jinja2, wenn es in Ansible ist, schnell zu konfigurieren, halten wir uns für diese Sitzung an, dass wir den folgenden Kriterien einhalten:
Beginnen wir mit einem kurzen Übungslauf des Jinja2, wenn es aus dem Ansible Playbook anliegt.
Beispiel: Implementierung der If-Statement
Verwenden Sie nun die If-Statement von Jinja, die auf der Python-Programmierung basiert, das Grundbeispiel in Ansible. Wir brauchen ein Spielbuch, um alle Befehle, Aufgaben und Jinja2 -Bedingungen zu enthalten, die wir in Ansible implementieren müssen. Der Befehl Ansible Terminal, mit dem wir das Playbook konstruieren, ist im Folgenden angezeigt:
[root@master ansible]# nano ansible_if.YMLNach dem Eintritt in den oben genannten Befehl ein Spielbuch mit dem „“.yml ”Erweiterung und die„ if.YML ”-Identifieransible werden sofort in einer neuen Registerkarte der Ansible -Werkzeugschnittstelle erstellt und eingeführt. Jetzt, da die bedingte wenn. Um die IF-Statement im Remote-Host-Gerät zu implementieren, geben wir zunächst den Ziel-Remote-Host im Playbook an. Wir bieten den lokalen Gastgeber während dieser Situation. Die Sammlung von Informationen in der Option Ansible wird verwendet, um die Daten über den lokalen Host zu erhalten. Wenn der wahre boolesche Wert an die Option übergeben wird, erhalten wir alle Informationen, die für den lokalen Host relevant sind. Wir liefern jedoch einen falschen booleschen Wert, wenn alles, was im Ausgabeterminal angezeigt wird. Nachdem wir die relevanten Informationen an den lokalen Host gegeben haben, definieren wir die Operationen, die wir im Spielbuch der If-Statement-Spiele ausführen möchten.
Zunächst definieren wir die Aufgabe, bei der wir die Verfügbarkeit des Dokuments in Ansible überprüfen möchten. Dann bestehen wir den Pfad des Dokuments und registrieren es. Als nächstes führen wir die Ergebnisse mit der Debug -Option aus und drucken wir aus. Anschließend verwenden wir die IF-Statement, um zu überprüfen, ob die Datei verfügbar ist oder nicht. In der nächsten Aufgabe überprüfen wir, ob der „Host“.yml ”ist durch den aktuellen Ansible -Controller zugänglich oder nicht. Wir verwenden also die Option Shell, um den Pfad des „Hosts“ zu deklarieren.YML ”-Dokument ANS über die Registervariable, in der wir den Zugriff auf den Host übergeben.YML ”-Dokument. Anschließend verwenden wir die If-Statement, um den Zustand "if" zu überprüfen.
- Gastgeber:Dann führen wir das Spielbuch in Ansible aus. Wir schreiben den folgenden Befehl, um die gewünschten Ergebnisse zu erzielen:
[Root@Master Ansible]# Ansible-Playbook Ansible_if.YML -ich Host.YMLWie Sie sehen können, wird die bedingte If-Statement erfolgreich ausgeführt. In der ersten Aufgabe der „Host“.YML ”-Dokument gibt es in Ansible, und wir haben erfolgreich auf den„ Host “zugegriffen.YML -Datei.
Abschluss
Wir haben eine der Bedingungen von Jinja2 in Ansible verwendet, was die IF-Statement ist. Wir haben den Schreibstil der If-Statement in Jinja2 besprochen und die Anforderungen gelernt, die im Steuerungshost- und Remote-Host-Geräte konfiguriert werden müssen. Wir haben ein Beispiel für das Jinja2-Anfall in Ansible implementiert, damit wir die Anweisung problemlos konfigurieren können.