So kopieren Sie mehrere Dateien in Ansible

So kopieren Sie mehrere Dateien in Ansible
Ansible ist ein nützliches Automatisierungswerkzeug, das die Automatisierung verschiedener Funktionen ermöglicht. Es gewährt dem Benutzer auf seinen Geräten die volle Kontrolle. Es wird mit mehreren Modulen (ca. 750 - 800 davon) gepackt, was sich als recht vorteilhaft für Benutzer erweisen. Das Ansible Playbook ist einfach zu schreiben und hilft bei der Ausführung der ihm zugewiesenen Aufgaben, als würde man Zeit für einen bestimmten Job festlegen oder bestimmte Aktivitäten usw. behaupten usw.

Es gibt Zeiten, in denen wir möglicherweise mehrere Dateien von einem Gerät auf ein anderes kopieren müssen. Ansible liefert auch verschiedene Module dafür. Mit diesen Modulen können wir mehrere Dateien gleichzeitig kopieren und über Remote -Geräte senden. Das bringt uns zum Thema dieses Artikels: das Ansible Copy -Modul, das wir in diesem Handbuch implementieren werden.

Kopieren Sie mehrere Dateien

Falls wir mehrere Dateien übertragen möchten, müssen wir ein Spielbuch mit zahlreichen Aufgaben für jede Kopie erstellen. Während dies das Problem lösen kann, ist es nicht sehr zeitlich und kann ziemlich langweilig werden. Folglich hätten wir ein großes Spielbuch mit mehr Chancen menschlicher Fehler. Es wäre auch schwieriger zu debuggen. Glücklicherweise können wir mehrere andere Ansätze zur Lösung dieses Problems verwenden, die viel bequemer sind und unsere Ressourcen speichern.

Verwenden von Schleifen

Im Allgemeinen ist Ansible ein einfaches Automatisierungswerkzeug, für das kein vollwertiges Programmierkenntnis erforderlich ist. Wenn Sie jedoch das grundlegende Know-how darüber haben, wie ein Quellcode funktioniert.

Eine Schleife in der Computerprogrammierung ist eine Reihe von Anweisungen, mit denen das System eine bestimmte Reihe von Befehlen für ein bestimmtes Angebot wiederholen soll oder bis eine bestimmte Bedingung erfüllt ist.

Beispiele

-Name: Kopieren Sie alle Dateien in myconf/
Kopieren:
src: items
dest:/etc/myapp/
Besitzer: Wurzel
Gruppe: Wurzel
Modus: u = rw, g = rw, o = r
With_FileGlob:
-"Myconf /*"

Führen Sie das Spielbuch mit, indem Sie diesen Befehl im Linux -Terminal verwenden.

Ansible-Playbook-Testbuch.YML

Das obige Skript kopiert "myconf/" zusammen mit all seinen Inhalten zum Zielverzeichnis/etc/myapp/auf dem Remote -Host. Der Kopierbefehl wird für die Übertragung kopierter Inhalte ausgestellt. With_FileGlob ist die Schleife, die ausgeführt wird, bis die Dateien vollständig in den Remote -Host kopiert werden.

Dieser Ansatz funktioniert, wenn mehrere Dateien in das gleiche Verzeichnis übertragen werden müssen.

Verzeichniskopie

Dies ist ein weiterer Ansatz zum Senden von Dateikopien an den Remote -Host. Hier kopieren wir das gesamte Verzeichnis, das die Dateien enthält, die wir übertragen müssen, und sie an den Remote -Knoten senden. Es kann ein wenig zeitaufwändig sein, da man zuerst alle Dateien in ein bestimmtes Verzeichnis verschieben und dann das Verzeichnis insgesamt kopieren muss. Ein Beispiel demonstriert dies.

-Name: Verzeichniskopie zum Remote -Gerät
Kopieren:
src: myconfig/
Ziel: etc/myFolder
Besitzer: Wurzel
Gruppe: Wurzel
Modus: u = rw, g = rw, o = r

Das obige Skript kopiert das Verzeichnis myconfig/in ein Remote -Gerät mit Ziel/etc/myFolder. Es ist eine Inter -Verzeichnis -Übertragung. Das Segment „Modus“ stellt lediglich sicher, dass die Objekte des Dateisystems mit den richtigen Berechtigungen erstellt werden. Diese Modi können auf der Hauptseite des Moduls unter "Modulparameter kopieren" angezeigt werden.

Kopieren von Dateien auf mehrere Remote -Ziele

Für weitere Effizienz bei der Kopie mehrerer Dateien können wir eine Schleife verwenden, um Dateien insgesamt an mehrere Ziele zu senden. Lassen Sie uns den Schleifenmechanismus verwenden, um 4 Dienstprogramme auf einmal an den Remote -Host zu senden.

-Name: Kopieren mehrerer Dateien auf mehrere Ziele
Kopieren:
src: item.src
Ziel: Element.dest
Besitzer: Wurzel
Gruppe: Wurzel
Modus: u = rw, g = rw, o = r
mit den Fällen:
-src: setup1.conf, dest:/etc/setup1f/
-src: setup2.conf, dest:/etc/setup2f/
-src: setup3.conf, dest:/etc/setup3f/
-src: setup4.conf, dest:/etc/setup4f/

Der obige Code kopiert die Setup -Dateien von 4 Dienstprogrammen vom Stammbesitzer zum Remote -Host im Verzeichnis /etc /setup. Der Artikel.SRC ”zeigt an, dass mehr als 1 Element von der Zielmaschine kopiert wird.

Kopieren Sie Dateien vom Remote -Host von einem Ziel zu einem anderen

Mit Ansible können wir auch Dateien vom Remote -Host von einem Ziel zum anderen kopieren. Während dieses Verfahren für Dateien gültig ist, funktioniert es nicht für Verzeichnisse. Ein kleines Skript, das eine Testdatei von Ordner1 in Ordner2 überträgt.

-Name: Dateiübertragung auf dem Remote -Host
Kopieren:
SRC: $ HOME/Ordner1/test_file
Remote_Src: True
Ziel: $ Home/Ordner2/test_file

Erstellen Sie vor dem Kopieren eine Sicherungsdatei beim Remote -Host

Es gibt Zeiten, in denen wir versehentlich eine andere Datei kopieren können. Ein Mittel, um solche Probleme zu vermeiden, besteht darin, eine Sicherungsdatei auf dem Remote -Server zu erstellen.

Das Ansible Copy -Modul wird mit einem Parameter „Backup“ geliefert, um genau dem entgegenzuwirken. In Fall. Der Unterschied besteht darin, dass die neue Datei mit dem aktuellen Zeitstempel und dem Namen der Originaldatei angehängt wird. Standardmäßig hat der Sicherungsparameter seinen Wert als "Nein" festgelegt.

Zum Beispiel erstellt das folgende Skript eine Sicherung von „MyScript.txt ”im /ABC -Verzeichnis des Remote -Hosts. Es wird so etwas wie 'MyScript genannt.txt.8565.2022-03-17@20: 51: 18 '.

- Hosts: Blöcke
Aufgaben:
- Name: Ansible -Dateisicherungsbeispiel
Kopieren:
src: ~/myscript.txt
dest: /abc
Backup: Ja

Abschluss

In diesem Artikel haben wir das Kopiermodul und seine Parameter durchgesehen. Wir haben gesehen, wie wir mehrere Ansätze verwenden konnten, um mehrere Dateien vom lokalen auf den Remote -Host zu übertragen und bestimmte Aspekte zu manipulieren, z.

Das war alles für das Kopiermodul in Ansible zusammen mit Kopierverfahren für mehrere Dateien über Geräte hinweg. Hoffentlich wird jede Verwirrung, die Sie in Bezug auf den Ansible -Kopienmechanismus hatten.