Ansible get_url Modul

AnsibleBeginner
Jetzt üben

Einführung

In diesem Lab werden Sie das Ansible-Modul get_url erkunden, mit dem Sie Dateien vom Internet herunterladen und auf entfernte Hosts speichern können. Das get_url-Modul bietet verschiedene Optionen, um den Downloadprozess anzupassen, einschließlich Authentifizierung, Header und Prüfung der Prüfsumme.

Herunterladen einer Datei von einer URL

In diesem Schritt werden Sie das Ansible-Modul get_url verwenden, um eine Datei von einer URL herunterzuladen und auf einem entfernten Host zu speichern.

Erstellen Sie zunächst eine neue Ansible-Playbook-Datei mit dem Namen /home/labex/project/get_url-module-playbook.yaml und öffnen Sie sie in einem Texteditor. Fügen Sie den folgenden Inhalt zur Playbook-Datei hinzu:

- hosts: localhost
  tasks:
    - name: Herunterladen einer Datei von einer URL
      get_url:
        url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"
        dest: "/tmp/ansible-2.9.25.tar.gz"
  • hosts: Dies gibt den Zielhost an, auf dem das Playbook ausgeführt werden soll. In diesem Fall wird das Playbook auf dem lokalen Host ausgeführt, da der Zielhost localhost ist.
  • tasks: Dies ist eine Liste von Aufgaben, die ausgeführt werden sollen.
  • name: Dies ist der beschreibende Name für die Aufgabe, der den Zweck der Aufgabe identifiziert.
  • get_url: Dies ist ein Modul in Ansible, das verwendet wird, um Dateien vom Internet herunterzuladen.
  • url: Dieser Parameter gibt die URL an, von der die Datei heruntergeladen werden soll. In diesem Fall wird die Ansible-Version 2.9.25 von den offiziellen Ansible-Release heruntergeladen.
  • dest: Dieser Parameter gibt den Zielpfad auf dem Zielhost an, an dem die heruntergeladene Datei gespeichert werden soll. In diesem Fall wird die Datei in /tmp/ansible-2.9.25.tar.gz gespeichert.

Zusammenfassend herunterlädt dieses Playbook die Ansible-Version 2.9.25 Tarball von der angegebenen URL und speichert es in /tmp/ansible-2.9.25.tar.gz auf dem lokalen Host.

Führen Sie dann das Playbook mit dem folgenden Befehl aus:

ansible-playbook get_url-module-playbook.yaml

Beobachten Sie die Ausgabe, um zu sehen, ob die Datei erfolgreich heruntergeladen und auf dem entfernten Host gespeichert wurde. Beispielausgabe:

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Herunterladen einer Datei von einer URL] **********************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Vergewissern Sie sich, dass die Datei erfolgreich heruntergeladen und auf dem entfernten Host gespeichert wurde.

ll /tmp/ansible-2.9.25.tar.gz

Beispielausgabe:

-rw-rw-r-- 1 labex labex 14M Mar 15 13:03 /tmp/ansible-2.9.25.tar.gz

Anpassen von HTTP-Anforderungsheadern

In diesem Schritt werden Sie das Ansible-Modul get_url verwenden, um die HTTP-Anforderungsheader anzupassen, die während des Dateiherunterladeprozesses gesendet werden.

Ändern Sie zunächst die vorhandene Playbook-Datei, indem Sie alle Inhalte entfernen und den folgenden Inhalt zur Playbook-Datei hinzufügen:

- hosts: localhost
  tasks:
    - name: Herunterladen einer Datei von einer URL mit benutzerdefinierten Headern
      get_url:
        url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"
        dest: "/tmp/ansible-2.9.25-1.tar.gz"
        headers:
          Custom-Header-1: Value1
          Custom-Header-2: Value2
  • get_url: Dies ist ein Modul in Ansible, das verwendet wird, um Dateien vom Internet herunterzuladen.
  • url: Dieser Parameter gibt die URL an, von der die Datei heruntergeladen werden soll. In diesem Fall wird die Ansible-Version 2.9.25 von den offiziellen Ansible-Release heruntergeladen.
  • dest: Dieser Parameter gibt den Zielpfad auf dem Zielhost an, an dem die heruntergeladene Datei gespeichert werden soll. In diesem Fall wird die Datei in /tmp/ansible-2.9.25-1.tar.gz gespeichert.
  • headers: Dies ist ein optionaler Parameter, der Ihnen ermöglicht, benutzerdefinierte Header anzugeben, die in der HTTP-Anforderung enthalten sein sollen, die an den Server gesendet wird, wenn die Datei heruntergeladen wird. In diesem Fall ist es so eingestellt, dass zwei benutzerdefinierte Header enthalten sind: Custom-Header-1 mit dem Wert Value1 und Custom-Header-2 mit dem Wert Value2. Diese Header können für die Authentifizierung, Autorisierung oder andere Zwecke verwendet werden, wie sie vom Server, der die Datei hostet, erforderlich sind.

Zusammenfassend wird dieses Playbook die Ansible-Version 2.9.25 Tarball von der angegebenen URL mit benutzerdefinierten Headern in der HTTP-Anforderung herunterladen und als ansible-2.9.25-1.tar.gz im /tmp-Verzeichnis auf dem lokalen Host speichern.

Führen Sie dann das Playbook mit dem folgenden Befehl aus:

ansible-playbook get_url-module-playbook.yaml

Beobachten Sie die Ausgabe, um zu sehen, ob die Datei erfolgreich heruntergeladen und auf dem entfernten Host gespeichert wurde, und überprüfen Sie, ob die benutzerdefinierten Header in der HTTP-Anforderung enthalten waren. Beispielausgabe:

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

PLAY [localhost] **************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Herunterladen einer Datei von einer URL mit benutzerdefinierten Headern] **************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Vergewissern Sie sich, dass die Datei erfolgreich heruntergeladen und auf dem entfernten Host gespeichert wurde.

ll /tmp/ansible-2.9.25-1.tar.gz

Beispielausgabe:

-rw-rw-r-- 1 labex labex 14M Mar 15 13:17 /tmp/ansible-2.9.25-1.tar.gz

Dateiintegrität mit Prüfsumme überprüfen

In diesem Schritt werden Sie das Ansible-Modul get_url verwenden, um die Integrität der heruntergeladenen Datei mithilfe einer Prüfsumme zu überprüfen.

Ändern Sie zunächst die vorhandene Playbook-Datei, indem Sie alle Inhalte entfernen und den folgenden Inhalt zur Playbook-Datei hinzufügen:

- hosts: localhost
  tasks:
    - name: Herunterladen einer Datei und Prüfsumme überprüfen
      get_url:
        url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"
        dest: "/tmp/ansible-2.9.25-2.tar.gz"
        checksum: "sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha"
  • get_url: Dies ist ein Modul in Ansible, das verwendet wird, um Dateien vom Internet herunterzuladen.
  • url: Dieser Parameter gibt die URL an, von der die Datei heruntergeladen werden soll. In diesem Fall wird die Ansible-Version 2.9.25 von den offiziellen Ansible-Release heruntergeladen.
  • dest: Dieser Parameter gibt den Zielpfad auf dem Zielhost an, an dem die heruntergeladene Datei gespeichert werden soll. In diesem Fall wird die Datei in /tmp/ansible-2.9.25-2.tar.gz gespeichert.
  • checksum: Dieser Parameter wird verwendet, um die Prüfsumme der herunterzuladenden Datei zusammen mit ihrem Typ anzugeben. In diesem Fall ist es auf sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha eingestellt, was bedeutet, dass Ansible die SHA256-Prüfsumme der heruntergeladenen Datei mit der Prüfsumme vergleichen soll, die unter der angegebenen URL zur Verfügung gestellt wird. Dies gewährleistet die Integrität der heruntergeladenen Datei.

Zusammenfassend wird dieses Playbook die Ansible-Version 2.9.25 Tarball von der angegebenen URL herunterladen, als ansible-2.9.25-2.tar.gz im /tmp-Verzeichnis auf dem lokalen Host speichern und seine Integrität überprüfen, indem seine SHA256-Prüfsumme mit der Prüfsumme verglichen wird, die unter der angegebenen URL zur Verfügung gestellt wird.

Führen Sie dann das Playbook mit dem folgenden Befehl aus:

ansible-playbook get_url-module-playbook.yaml

Beobachten Sie die Ausgabe, um zu sehen, ob die Datei erfolgreich heruntergeladen und auf dem entfernten Host gespeichert wurde, und überprüfen Sie, ob die Prüfsummeüberprüfung bestanden hat. Beispielausgabe:

[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'

PLAY [localhost] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [localhost]

TASK [Herunterladen einer Datei und Prüfsumme überprüfen] *************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

Vergewissern Sie sich, dass die Datei erfolgreich heruntergeladen und auf dem entfernten Host gespeichert wurde.

ll /tmp/ansible-2.9.25-2.tar.gz

Beispielausgabe:

-rw-rw-r-- 1 labex labex 14M Mar 15 13:31 /tmp/ansible-2.9.25-2.tar.gz

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu dem Ansible-Modul get_url erfolgreich abgeschlossen. Sie haben gelernt, wie man Dateien von einer URL herunterlädt, sie auf entfernten Hosts speichert, HTTP-Anforderungsheader anpasst und die Dateiintegrität mithilfe einer Prüfsumme überprüft.

Das get_url-Modul ist ein vielseitiges Werkzeug, das Ihnen ermöglicht, Dateiherunterladungen zu automatisieren und verschiedene Aspekte des Downloadprozesses zu verwalten. Mit diesen Kenntnissen können Sie Ihre Ansible-Playbooks verbessern und die Dateiverteilung in Ihrer Infrastruktur effizienter verwalten.

Fahren Sie mit der Erkundung der Ansible-Dokumentation und dem Experimentieren mit verschiedenen Modulen fort, um Ihre Automatisierungsfähigkeiten zu erweitern. Viel Spaß beim Arbeiten mit Ansible!