Ansible

So laden Sie Dateien mit dem Ansible get_url-Modul herunter

So laden Sie Dateien mit dem Ansible get_url-Modul herunter

Als Linux-Benutzer sind Sie wahrscheinlich mit Tools vertraut, mit denen Sie Dateien von Remote-Servern mithilfe von HTTP-, HTTPS- und FTP-Protokollen herunterladen können, z. B. wget und cURL. Bei der Durchführung von Automatisierungsaufgaben müssen Sie gelegentlich Dateien und Pakete auf Remote-Hosts herunterladen. Während Sie wget und cURL auf den Remote-Hosts verwenden können, um diese Funktion auszuführen, können Sie die erforderliche Installation auch umgehen, um diese Tools mit dem Ansible get_url-Modul zu verwenden.

Dieses Tutorial zeigt Ihnen, wie Sie den Ansible get_url-Befehl verwenden, um Dateien von Remote-Servern herunterzuladen.

Bevor wir beginnen, erfordert der Ansible get_url-Befehl die folgenden Voraussetzungen:

  1. Der Remote-Server, von dem die Datei(en) heruntergeladen werden sollen, sollte direkten Zugriff auf den Host-Server haben.
  2. Der Hostserver sollte sowohl HTTP- als auch HTTPS-Protokolle unterstützen.

Über das get_url-Modul

Bevor Sie lernen, wie Sie das get_url-Modul implementieren, sollten Sie zunächst einige Dinge über dieses Modul verstehen understanding. Das get_url-Modul unterstützt die folgenden Funktionen:

Als Nächstes zeigen wir Ihnen, wie Sie das get_url-Modul verwenden, um Dateien mit verschiedenen Protokollen und Konfigurationen herunterzuladen.

Verwenden des get_url-Moduls zum Abrufen von Dateien

Im Folgenden sind einige Beispiele aufgeführt, die Sie mithilfe des get_url-Moduls implementieren können, wenn Sie Dateien von einem Remote-Server herunterladen.

Laden Sie Dateien vom HTTP/HTTPS-Server mit direkter URL herunter

Betrachten Sie das folgende Playbook, das ein Verzeichnis im ~/ erstellt.local und verwendet das get_url-Modul, um das Debian-MySQL-Paket herunterzuladen.

HINWEIS: MYSQL-Serverpakete finden Sie in der unten bereitgestellten Ressource:

https://linkfy.to/mysql-pakete

- Gastgeber: alle
- Name: Laden Sie den Debian MySQL-Server mit HTTP/HTTPS herunter
Aufgaben:
- name: Verzeichnis mysql-server in /home/user/ erstellen.lokal
Datei:
Pfad: ~/.lokaler/mysql-server
Zustand: Verzeichnis
Modus: 0777
- Name: GET MySQL-Server-Pakete
get_url:
URL: „https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.Teer"
Ziel: ~/.lokaler/mysql-server
Modus: 0777
Prüfsumme: md5:5568e206a187a3b658392520540f556e

Das obige Playbook beginnt mit der Erstellung eines Verzeichnisses in $HOME/.local/mysql-server, wo das heruntergeladene Paket gespeichert werden soll. Wenn Sie ein Verzeichnis in einem privilegierten Verzeichnis erstellen, denken Sie daran, die 'become'-Direktive zu verwenden.

Als nächstes ruft das Playbook das get_url-Modul auf und gibt die URL an, von der das Paket heruntergeladen werden soll, gefolgt vom Zielverzeichnis, in dem die Datei gespeichert werden soll. Der letzte Abschnitt des Playbooks gibt die md5-Prüfsumme an, um die Gültigkeit der Datei zu überprüfen.

HINWEIS: Im obigen Playbook haben wir die Prüfsumme hartcodiert, aber Sie können die URL angeben, unter der die Prüfsumme gehostet wird.

Nachdem Sie das Playbook ausgeführt haben, erhalten Sie eine Ausgabe, die den Erfolg oder Misserfolg der Aufgaben anzeigt.

$ ansible-playbook download_mysql_server.yml PLAY [Debian MySQL-Server mit HTTP/HTTPS herunterladen] ************************************** ************************************************* ************************************************* ******************
AUFGABE [Fakten sammeln] ************************************************* ************************************************* ************************************************* ****************************************
Okay: [35.222.210.12]
AUFGABE [Verzeichnis mysql-server in /home/user/ erstellen.lokal] ************************************************ ************************************************* ************************************************* **********
35.222.210.12 : ok=3 geändert=1 nicht erreichbar=0 fehlgeschlagen=0 übersprungen=0 gerettet=0 ignoriert=0

Sobald der Vorgang abgeschlossen ist, können Sie sich beim Host anmelden und überprüfen, ob die Datei vorhanden ist.

Dateien mit sha256-Prüfsumme herunterladen

Sie können auch Dateien herunterladen und mit der sha256-Prüfsumme überprüfen, wie im folgenden Beispiel-Playbook gezeigt:

- Gastgeber: alle
- Name: Debian MySQL-Server mit HTTP/HTTPS herunterladen
Aufgaben:
- name: Verzeichnis mysql-server in /home/user/ erstellen.lokal
Datei:
Pfad: ~/.lokaler/mysql-server
Zustand: Verzeichnis
Modus: 0777
- Name: GET MySQL-Server-Pakete
get_url:
URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.Teer
Ziel: ~/.lokaler/mysql-server
Modus: 0777
Prüfsumme: sha256:b5bb9d8014a0f9b1d61e21e796d78eefdf1352f23cd32812f4850b878ae4944c

Betrachten Sie das folgende Beispiel, um eine URL zu verwenden, anstatt die Prüfsumme hart zu codieren:

- Gastgeber: alle
- Name: Laden Sie den Debian MySQL-Server mit HTTP/HTTPS herunter
Aufgaben:
- name: Verzeichnis mysql-server in /home/user/ erstellen.lokal
Datei:
Pfad: ~/.lokaler/mysql-server
Zustand: Verzeichnis
Modus: 0777
- Name: GET MySQL-Server-Pakete
get_url:
URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.Teer
Ziel: ~/.lokaler/mysql-server
Modus: 0777
Prüfsumme: sha256:https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.Teer.sha265

Dateien mit Zeitüberschreitung herunterladen, wenn keine Reaktion erfolgt

In einigen Fällen haben Sie möglicherweise eine angegebene Ressourcen-URL, deren Antwort länger dauern kann oder die nicht verfügbar ist. Dies kann dazu führen, dass die Verbindung geschlossen wird, bevor der Server antwortet, da das Standard-Timeout normalerweise 10 Sekunden beträgt. Um den Timeout-Wert explizit anzugeben, verwenden Sie den Timeout: Direktive.

Betrachten Sie das folgende Playbook:

- Gastgeber: alle
- Name: Debian MySQL-Server mit Zeitüberschreitung herunterladen
Aufgaben:
- name: Verzeichnis mysql-server in /home/user/ erstellen.lokal
Datei:
Pfad: ~/.lokaler/mysql-server
Zustand: Verzeichnis
Modus: 0777
- Name: GET MySQL-Server-Pakete
get_url:
URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.Teer
Ziel: ~/.lokaler/mysql-server
Modus: 0777
Prüfsumme: sha256:https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.0.22-1debian10_amd64.Deb-Bundle.Teer.sha265
Zeitüberschreitung: 30

Das obige Playbook gibt als Timeout 30 Sekunden an und die Verbindung wird unterbrochen, wenn der Server nicht innerhalb der festgelegten Zeit antwortet.

Dateien mit Authentifizierung herunterladen

Um eine Datei auf einen Server herunterzuladen, der eine Authentifizierung erfordert, müssen Sie die Anmeldewerte angeben.

Betrachten Sie das folgende Playbook:

- Gastgeber: alle
- Name: Datei mit Authentifizierung herunterladen
werden: ja
get_url:
URL: http://102.fünfzehn.192.120/Backups/Datenbankdata.Teer.gz
Ziel: /backups
Benutzername: Benutzer
Passwort: 'pass'
Modus: 0777
Zeitüberschreitung: 5

Dateien vom lokalen Dateipfad herunterladen

Um eine Datei von einem lokalen Dateipfad herunterzuladen, können Sie das URI-Schema file:// gefolgt vom Pfad zur Datei verwenden.

Betrachten Sie das folgende Playbook:

- Hosts: Webserver
- Name: Datei vom lokalen Dateipfad herunterladen
werden: ja
get_url:
URL: file:///backups/secure/config.Teer.gz
Ziel: /dev/null

FTP-Dateien herunterladen

Das Herunterladen von FTP-Dateien ist dem im vorherigen Abschnitt beschriebenen Prozess sehr ähnlich. Sie müssen lediglich ftp:// als Protokoll zum Server angeben protocol.

Um eine sichere Datei herunterzuladen, müssen Sie auch die Anmeldeinformationen hinzufügen, wie zuvor gezeigt.

Betrachten Sie das folgende Playbook:

- Gastgeber: alle
Aufgaben:
- Name: Datei vom FTP-Server herunterladen
werden: ja
get_url:
URL: ftp://192.168.11.101
Ziel: /backups
Modus: 0777

Ansible get_url-Moduloptionen

Das Modul get_url unterstützt auch verschiedene Optionen, mit denen Sie den Dateidownload und die Verwaltung angeben und überwachen können. Die mit dem get_url-Modul verfügbaren Optionen umfassen die folgenden:

Fazit

In diesem Artikel wurde das get_url-Modul in Ansible ausführlich behandelt und gezeigt, wie Sie dieses Modul verwenden, um Dateien aus verschiedenen Quellen herunterzuladen. In diesem Artikel erfahren Sie, wie Sie Dateien in Ansible mit dem get_url-Modul herunterladen.

So ändern Sie die linke und rechte Maustaste auf einem Windows 10-PC
Es ist ganz normal, dass alle Computer-Maus-Geräte ergonomisch für Rechtshänder gestaltet sind. Es gibt aber auch Mausgeräte, die speziell für Linkshä...
Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...