Wie man das Beste aus Ansible Unarchive herausholt

Wie man das Beste aus Ansible Unarchive herausholt
Unarchiving bezieht sich auf die Dekompression von Dateien, die sich in der befinden .Reißverschluss, Teer und Teer.GZ -Format. Es ist der Prozess, über den Dateien aus einem vorhandenen Archiv wiederhergestellt werden. Dieses Archiv kann lokal auf Ihrem System oder auf einem Remote -Server vorhanden sein.

Die Archivierung hat seine Vorteile, die größte von ihnen ist eine einfache Portabilität. Sie können Dateien verschiedener Typen gruppieren und sie in ein einzelnes tragbares Komprimieren komprimieren .ZIP/TAR -Datei, die dekomprimiert werden kann, um die Originaldateien später abzurufen.

Ansible bietet auch Archivoptionen mit Hilfe des Ansible.gebaut.Unarchives Modul. Dieses Modul verfügt über die Unzip -Optionen sowie einige Optionen, mit denen es Dateien kopieren kann.

Dieser Leitfaden soll Ihnen helfen, zu lernen, wie Sie das nichtarchive Modul in Ansible verwenden können. Wir werden die Grundlagen des nichtarchiven Moduls, einige gemeinsame Parameter und Beispiele zur Implementierung durchgehen.

Abgesehen davon beginnen wir, beginnen wir.

Voraussetzungen von Unarchiv in Ansible

Im Folgenden finden Sie die Anforderungen, damit das Ansible Unarchive -Modul ordnungsgemäß auf Ihrem System funktioniert.

  • Ein System mit vorinstalliertem Ansible. Wir empfehlen Ihnen, eine Linux -Verteilung zu verwenden.
  • Remote -Hosts, entweder separate Systeme oder virtuelle Maschinen. Software wie Oracle VirtualBox, Vagrant und VMware -Workstations sind perfekt für den Job.
  • Die Befehle „Zipinfo“, „GTAR“ und „Unzip“ sollten auf dem Host installiert werden.

Wir empfehlen auch, dass Sie ein grundlegendes Know-how darüber haben, wie Sie Befehle im Terminal ausführen können.

Einschränkungen von Unarchiv in Ansible

Während das nichtarchive Modul gut mit funktioniert mit .Teer und .ZIP -Dateien können nicht mit Dateien des Typs verwendet werden .gz, .BZ2, .XZ -Dateien. Dateien müssen a enthalten .Teerarchiv für das Modul funktioniert. Stellen Sie für Dateien, die GTAR verwenden, sicher, dass das Argument für -diff unterstützt wird.

Der nächste Abschnitt dieses Handbuchs behandelt die Parameter des unarchiven Moduls.

Parameter des Ansible Unarchive -Moduls

Das Ansible Unarchive -Modul verfügt über eine eigene Liste von Parametern, die die Funktionalität des Gesamtmoduls erweitern.

Eine Liste wichtiger Module ist unten angegeben.

  • "Attribute" - Diese regeln die Attribute eines bestimmten Dateisystems Objekt.
  • "Kopieren" - Diese Funktion enthält zwei Auswahlmöglichkeiten, ja oder Nein. Wenn die ausgewählte Option Ja ist, wird die Datei vom lokalen Gerät in den Remote -Host kopiert.
  • "Erstellt" - verwendet, um einen Pfad/Verzeichnis zu erstellen.
  • "Ausschließen" - ermöglicht es Ihnen, bestimmte Dateien und Verzeichnisse vom Extrahieren auszuschließen.
  • ”Group” - bezeichnet eine Gruppe, zu der das Dateisystemobjekt gehört.
  • "Include" - Fügen Sie Dateien und Verzeichnisse ein, die Sie extrahieren möchten.
  • "Modus" - regiert die Berechtigungen des Dateisystems.
  • "Eigentümer" - bezeichnet einen Benutzer als Eigentümer eines Dateisystems

Neben den oben genannten Parametern sind mehrere Optionen mit dem Ansible Unarchive -Modul verfügbar. Weitere Informationen zu den Parametern finden Sie in der offiziellen Ansible Unarchive Modul -Dokumentation online.

Der nächste Abschnitt dieses Leitfaden.

Verwenden von Unarchive zum Extrahieren einer Datei in ein bestimmtes Verzeichnis

Das folgende Beispiel zeigt, wie Sie a extrahieren können .TGZ -Datei (genannt Archiv.TGZ) in einen bestimmten Weg.

- Name: Archiv extrahieren.TGZ in/var/lib/Archiv
Ansible.gebaut.unarchiv:
SRC: Archiv.TGZ
dest:/var/lib/archiv

Führen Sie diesen Befehl nun im Linux -Terminal zum Ausführen eines Spielbuchs aus.

Ansible-Playbook-Testbuch.YML

"SRC" bezeichnet die Datei, die extrahiert werden soll, während "dest:" verwendet wird, um den Pfad anzugeben.

Wir werden weitere Beispiele sehen, um zu verstehen.

Eine auf dem Remote -Host verfügbare Datei nicht anarchivieren

Das folgende Beispiel zeigt, wie Sie eine Datei extrahieren können, die bereits auf dem Remote -Host oder -Machter vorhanden ist.

- Name: Extrahieren Sie eine Datei, die bereits im Remote -System vorhanden ist.
Ansible.gebaut.unarchiv:
src: /tmp /archiv.Reißverschluss
dest:/usr/local/bin
Remote_SRC: Ja

Der oben erwähnte Code extrahiert das Dateiarchiv.ZIP in/usr/local/bin.

Verwenden des nichtarchiven Moduls, um eine Online -Datei zu extrahieren

Dies war eine Funktion, die in der Ansible Version 2 hinzugefügt wurde.0. Sie können eine Datei extrahieren, die online verfügbar ist, die noch nicht auf dem System heruntergeladen wurde.

Das folgende Beispiel zeigt, wie Sie dies erreichen können.

- Name: Extrahieren Sie eine Datei, die noch nicht auf Ihrem System heruntergeladen wurde
Ansible.gebaut.unarchiv:
SRC: https: ///.Reißverschluss
dest:/usr/local/bin
Remote_SRC: Ja

Der oben genannte Codeblock extrahiert die Datei in den Zielpfad/usr/local/bin.

Der Unterschied im Spielbuchcode mit und ohne nicht archiviv

Das folgende Beispiel soll Ihnen helfen, den Unterschied zwischen Code zu sehen, der das unarchive Befehlsmodul verwendet.

Wir beginnen einen Blick darauf. Wir werden das Kopiermodul zusammen mit dem TAR -XVF -Befehl zur Extraktion verwenden.

---
- Name: Kopieren Sie eine bestimmte Datei und extrahieren Sie ihren Inhalt
Hosts: test_servers
vars:
- BenutzerID: "Linuxuser1"
- Oracle_Home: "/opt/oracle"
- jdk_instl_file: "server-linux.Teer.GZ "(Name der .Teer.GZ -Datei.)
Aufgaben:
- Name: Kopieren Sie den Inhalt der JDK -Dateien
Werde: Ja
werden_user: "userId" "
Tags: App, CPBinaries
Kopieren:
src: "item"
dest: "oracle_home"
Modus: 0755
With_items:
- "jdk_instl_file"
- Name: Java installieren
Werde: Ja
werden_user: "userId" "
Tags: Javainstall
Shell: "tar xvfz oracle_home/jdk_instl_file"
Args:
chdir: "oracle_home"
Register: Javainstall

Die gleichen Aufgaben können auf viel einfachere Weise unter Verwendung des unarchiven Moduls wie unten gezeigt erreicht werden.

---
- Name: Kopieren Sie eine bestimmte Datei und extrahieren Sie ihren Inhalt
Hosts: test_servers
vars:
- BenutzerID: "Linuxuser1"
- Oracle_Home: "/opt/oracle"
- jdk_instl_file: "server-linux.Teer.GZ "
Aufgaben:
- Name: Kopieren und installieren Sie JDK -Inhalte und Java
Werde: Ja
werden_user: "userId" "
Tags: Javainstall
unarchiv:
src: "item"
dest: "oracle_home"
Modus: 0755
With_items:
- "jdk_instl_file"

Beachten Sie, wie eine signifikante Abnahme der Codezeilen im Vergleich zu der Methode, die das nichtarchive Modul nicht verwendet. Durch die Verwendung des nichtarchiven Moduls konnten wir die Aufgabe mit dem Kopieren und Unarchiving in einen verschmelzen.

Abschluss

Wir hoffen, dieser Leitfaden hat Ihnen geholfen. Wir haben die Grundlagen des Moduls zusammen mit Einschränkungen, Voraussetzungen und Parametern behandelt. Wir haben auch einige Beispiele durchgesehen, um unser Verständnis zu verbessern. Damit wünschen wir Ihnen alles Gute beim Lernen, wie Sie Ansible verwenden können.