Wofür wird das Archivieren und Unarchivieren verwendet??
Das Ansible-Archiv hilft Ihnen, Dateien in die Formate bz2, gz, tar, xz und zip zu komprimieren. Sie können Dateien und Ordner auf lokalen oder Remote-Hosts komprimieren.
Das Ansible unarchive entpackt Archive. Das Standardverhalten des Dearchivierens besteht darin, vom lokalen auf den Remote-Host zu kopieren und dann zu dekomprimieren.
Warum archivieren und entarchivieren??
Die Module Archivieren und Unarchivieren sind nützlich, um große Dateien und Ordner zwischen Host-Rechnern zu verschieben. Wenn Sie beispielsweise über eine Reihe von NGINX-Konfigurationsdateien verfügen, können Sie mit dem Befehl unarchive einen gezippten Ordner von einer URL herunterladen und entpacken. Andererseits kann das Archivmodul verwendet werden, um Dateien und Ordner für die zukünftige Verwendung zu sichern.
Ein Beispiel
Lassen Sie uns versuchen, ein Ansible-Playbook auszuführen, um die Befehle zum Archivieren und Dearchivieren auszuprobieren. In diesem Beispiel verwenden wir den localhost sowohl als Quelle als auch als Ziel. Wir werden zuerst einen Ordner mit ein paar Dateien erstellen, ihn zippen und dann an einen neuen Ort entpacken.
Versuchen wir es mit den folgenden Ordnern /test1 und /test2. Erstellen Sie im Ordner test1 den Ordner project mit text1.txt und text2.TXT.
# mkdir test1# mkdir test2
# CD-Test1
# mkdir-Projekt
# Projekt/Text berühren1.TXT
# Projekt/Text berühren2.TXT
Wir haben also diese Verzeichnisstruktur in test1:
# Baumtest1test1
'-- Projekt
|-- text1.TXT
'-- text2.TXT
1 Verzeichnis, 2 Dateien
Lassen Sie uns ein einfaches Playbook namens Archive erstellen.yml im Ordner test1 mit folgendem Inhalt:
---- name: Dies ist ein Archivbeispiel
Gastgeber: 127.0.0.1
Aufgaben:
- name: Archiviert die Dateien und Ordner
Archiv:
Pfad: /test1/projekt/*
Ziel: /test1/Projekt.Postleitzahl
Format: zip
Das Playbook weist Ansible an, eine ZIP-Datei namens project . zu erstellen.zip mit dem gesamten Inhalt im Projektordner auf dem lokalen Host (127.0.0.1).
Lass uns das Playbook laufen lassen.
# ansible-playbook-Archiv.yml[WARNUNG]: Vorausgesetzt, dass die Hosts-Liste leer ist, ist nur localhost verfügbar. Notiere dass der
impliziter localhost stimmt nicht mit 'all' überein
PLAY [Dies ist ein Archivbeispiel]
************************************************* ********************************
**********
AUFGABE [Sammeln von Fakten]
************************************************* ********************************
********************************
Okay: [127.0.0.1]
AUFGABE [Archiviert die Dateien und Ordner]
************************************************* ********************************
******************
geändert: [127.0.0.1]
ZUSAMMENFASSUNG SPIELEN
************************************************* ********************************
*********************************************
127.0.0.1 : ok=2 changed=1 nicht erreichbar=0 fehlgeschlagen=0
Wenn wir überprüfen, sehen wir, dass Ansible die ZIP-Datei erstellt hat:
# lsArchiv.yml-Projekt Projekt.Postleitzahl
Jetzt dearchivieren wir. Wir können ein Unarchive erstellen.yml-Datei mit folgendem Inhalt im Ordner /test2:
---- name: Dies ist ein Beispiel zum Entarchivieren
Gastgeber: 127.0.0.1
Aufgaben:
- name: Dearchiviert die Zip-Datei
entarchivieren:
src: /test1/projekt.Postleitzahl
Ziel: /test2
Lassen Sie uns das Playbook ausführen:
# ansible-playbook Unarchive.yml[WARNUNG]: Vorausgesetzt, dass die Hosts-Liste leer ist, ist nur localhost verfügbar. Notiere dass der
impliziter localhost stimmt nicht mit 'all' überein
PLAY [Dies ist ein Beispiel zum Entarchivieren]
************************************************* ********************************
********************
AUFGABE [Sammeln von Fakten]
************************************************* ********************************
*********************************
Okay: [127.0.0.1]
AUFGABE [Entpackt die ZIP-Datei]
************************************************* *********************************
********************
geändert: [127.0.0.1]
SPIELRÜCKBLICK
************************************************* *********************************
******************************************
127.0.0.1 : ok=2 changed=1 nicht erreichbar=0 fehlgeschlagen=0=
Wenn wir nun den Ordner test2 überprüfen:
# lsEntarchivieren.yml text1.txt Text2.TXT
Wir sehen, dass der Text1.txt und text2.txt-Dateien wurden in den Ordner /test2 dekomprimiert.
Mit Ansible Playbooks haben wir einen Ordner erfolgreich archiviert und an einem anderen Ort dearchiviert.
Weitere Studie:
- Archiv: https://docs.ansible.com/ansible/2.5/module/archive_module.html
- Entarchivieren: https://docs.ansible.com/ansible/2.5/modules/unarchive_module.html