So verwenden Sie Tags in Ansible

So verwenden Sie Tags in Ansible

Die Stücke, Rollen und Aufgaben sind die Ansible -Struktur, und diese Ansible -Struktur enthält das wichtige Attribut, das als Tags in Ansible bezeichnet wird. Wenn wir ein Playbook in Ansible starten, können Sie die Befehle -Tags und -Skip -Tags verwenden, damit wir nur eine bestimmte Reihe von Aufgaben, Spielen und Rollen ausführen können. Wenn wir ein Spielbuch haben, das so viele Aufgaben enthält, aber nicht alle Aufgaben des Spielbuchs ausführen möchten, anstatt das gesamte Spielbuch auszuführen, werden wir nur ein paar Aufgaben mit dem Tag -Befehl im Ansible Playbook ausführen.

Wir werden Tags in diesem Thema diskutieren, die als eine der wichtigsten Facetten von Ansible dienen. Wir werden versuchen zu erklären, was Tags sind und wie Tags in STIBLE funktionieren, da dies ein verwirrendes Merkmal der Ansible -Plattform ist.

Beispielsweise kann ein Spielbuch drei Verantwortlichkeiten enthalten: Installieren des Moduls, Konfigurieren und Überprüfung des Status des bereitgestellten Moduls, z. Da wir lediglich den Zustand der Module auf ein paar Fernmaschinen sehen müssen, verwenden wir in dieser Situation Ansible -Tags, anstatt alle Aufgaben im Spielbuch auszuführen. Es ermöglicht es uns, einen bestimmten Vorgang ausschließlich auszuführen, sodass wir die Laufzeit verkürzen können, indem alle verwandten Aktivitäten in einem einzigen Spielbuch aufbewahrt werden.

Voraussetzungen, die Tags im Ansible Playbook zu verwenden

Um die praktischen Beispiele in die Ansible -Software aufzunehmen, müssen wir die folgenden Anforderungen erfüllen.

Ein Ansible -Controlling -Server muss so erforderlich sein, dass Änderungen vorgenommen werden. Um den Tag -Parameter in der ansiblen Software zu verwenden, benötigen wir die lokalen Hosts, um mit ihnen zu kommunizieren. In diesem Fall verwenden wir den lokalen Host während der gesamten Ausführung als Ziel -Remote -Server. Wir erstellen Playbooks, führen Ansible-Tag-Befehle aus und überwachen die Ergebnisse auf Remote-Hosts vom Ansible-Controller-Gerät.

Wir werden uns für verschiedene Szenarien einsetzen, um einige der Ansible -Tags zu untersuchen, damit der Lernende das Konzept der Tags in einem Ansible Playbook leicht verstehen kann.

Beispiel 01: Zugriff auf eine einzelne Aufgabe im Ansible Playbook

Wir werden in Sible implementiert, indem wir mehrere Aufgaben im Spielbuch bereitstellen, und dann werden wir nur auf eine einzige Aufgabe zugreifen, indem wir die darin enthaltenen Tags verwenden. Dazu erstellen wir zuerst das Playbook, indem wir den folgenden Befehl schreiben:

[root@master ansible]# nano ansible_tags.YML

Nach dem Erstellen und Starten der Ansible_Tags.YML Playbook. Jetzt werden wir die Befehle im Spielbuch schreiben. Erstens werden wir die bereitgestellten Hosts im Parameter „Hosts“ übergeben, den wir "Localhost" verwenden werden. Dann schreiben wir den "falschen" Wert im Parameter "sammel_facts", damit wir nicht die zusätzlichen Informationen über den Localhost erhalten können, wenn wir das Spielbuch ausführen.

Danach werden wir mit dem Auflisten der Aktivitäten unter dem Parameter „Aufgaben“ eins voneinander beginnen, die wir ausführen möchten. Wir werden feststellen, ob das Dokument im ersten Prozess auf der Localhost -Maschine vorhanden ist. Wenn es verfügbar ist, speichern wir es im Parameter „Register“ und geben dem Tag den eindeutigen Namen, damit wir beim Ausführen des Playbooks einfach auf das Tag zugreifen können. In der zweiten Aufgabe werden wir das Gleiche wie in der ersten Aufgabe tun.

- Gastgeber:
- Lokalhost
sammeln_facts: false
Aufgaben:
- Name: Überprüfen Sie die Datei Existenz x '
Stat: Pfad =./Gastgeber.YML
Register: Dateiexisten
Tags: check_file
- debuggen:
msg: "'' Datei existiert ', wenn File existiert.Stat.existiert sonst 'Datei nicht gefunden' "
Tags: check_file
- Name: Überprüfen Sie, ob Host.YML ist vom aktuellen Benutzer zugegriffen
Shell: STAT -C "%a" ./Gastgeber.YML
Register: AccessPath
Tags: check_access
- debuggen:
msg: "'Datei zugänglich' if (AccessPath.stdout | int) < 660 else 'File is not accessible' "
Tags: check_access

Jetzt werden wir das Spielbuch retten und es dann schließen. Wir wollen die Ansible_Tags ausführen.YML -Spielbuch, damit wir den folgenden Befehl in das Ansible -Terminal schreiben, um den Benutzern die Ausgabe zu präsentieren.

[Root@Master Ansible]# Ansible-Playbook Ansible_Tags.YML -Tags check_file

Nachdem wir den obigen Befehl ausgeführt haben, erhalten wir im Gegenzug die gewünschte Ausgabe. Wie unten gezeigt, wird nur eine Aufgabe ausgeführt und wird in der Ausgabe angezeigt, bei der es sich um „Existenz der Datei handeln“.

Beispiel 02: Ignorieren Sie ein bestimmtes Tag im Ansible Playbook

Hier ist das zweite Beispiel für das Ansible -Tag, in dem wir zum "Skip" -Tag gehen. Es liegt an Ihnen, ob Sie alle Aufgaben ignorieren oder eine bestimmte Aufgabe des Spielbuchs in Ansible ignorieren möchten. Wir verwenden die Implementierung von Beispiel 1 und überspringen dann die Aufgabe einfach, indem wir einfach die folgende Anweisung in das Ansible -Terminal schreiben.

[Root@Master Ansible]# Ansible-Playbook Ansible_Tags.YML--skip-Tags check_file

Aus dem obigen Befehl haben wir einfach die Aufgabe „Existenz der Datei überprüft“ ignoriert. Jetzt wird in der Ausgabe, die in der grünen Schriftart "Datei zugänglich" angezeigt wird, nur eine einzelne Aufgabe angezeigt.

Beispiel 03: Führen Sie die Aufgabe immer im Ansible Playbook aus

Wir werden das dritte Beispiel basierend auf dem Ansible -Tag implementieren. In diesem Beispiel werden wir das Tag „Immer“ verwenden, was bedeutet, dass ein bestimmtes Tag immer im Ansible Playbook ausgeführt wird. Verwenden Sie den folgenden Befehl, um das Spielbuch zu starten:

[root@master ansible]# nano ansible_tags.YML

Im Spielbuch haben wir mehrere Aufgaben zum Ausführen erstellt, aber in der letzten Aufgabe das "Immer" -Tag übergeben, das lautet "das Passwort aus dem Inventar löschen". Im Folgenden sind der im Playbook implementierte Befehl:

- Hosts: Alles
sammeln_facts: false
Aufgaben:
- Name: Überprüfen Sie die Existenz der Datei
Stat: Pfad =./Gastgeber.YML
Register: Dateiexisten
delegate_to: localhost
Tags: check_file
- debuggen:
msg: "'' Datei existiert ', wenn File existiert.Stat.existiert sonst 'Datei nicht gefunden' "
Tags: check_file
- Name: Überprüfen Sie, ob Host.YML ist vom aktuellen Benutzer zugegriffen
Shell: STAT -C "%a" ./Gastgeber.YML
Register: AccessPath
delegate_to: localhost
Tags: check_access
- debuggen:
msg: "'Datei zugänglich' if (AccessPath.stdout | int) < 660 else 'File is not accessible' "
Tags: check_access
- Name: Passwort aus dem Inventar löschen
LineInfile:
Pfad: "Inventory_file"
regexp: '\ b item.*\B'
Zustand: abwesend
delegate_to: localhost
werden: falsch
Tags: Immer
With_items:
- ansible_password

Danach erstellen wir die Bestandsdatei, um die Verbindung zwischen dem Controller und dem Ziel -Remote -Host zu erstellen. Unten ist der Befehl:

[Root@Master Ansible]# Nano Host.YML

Hier ist die Bestandsdatei, die die Informationen zum „Linux_host“ in Ansible enthält.

Alle:
Gastgeber:
Linux_host:
Ansible_Host: 192.168.3.229
ansible_user: Ansible
ansible_password: ******
Ansible_Connection: SSH
Ansible_port: 22

Um die gewünschte Ausgabe zu erhalten, werden wir den folgenden Befehl im Ansible -Terminal ausführen:

[Root@Master Ansible]# Ansible-Playbook Ansible_Tags.YML -Tag check_file -i Host.YML

Abschluss

In diesem Artikel wurden Tags in Ansible erläutert. Wir verstehen jetzt die Funktion von Tags und die Orte in Ansible, an denen wir sie anwenden werden. Um dem Lernenden zu helfen, das Konzept von Ansible -Tags zu verstehen, haben wir verschiedene Beispiele entwickelt.