Ansible-Dateimodul

AnsibleAnsibleBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie das Ansible-File-Modul erkunden, mit dem Sie Dateien und Verzeichnisse auf entfernten Hosts verwalten können. Das File-Modul bietet eine Vielzahl von Funktionen, wie das Erstellen, Löschen, Ändern von Rechten und das Überprüfen der Existenz von Dateien und Verzeichnissen.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 100% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Erstellen einer Datei auf einem entfernten Host

In diesem Schritt werden Sie mithilfe des Ansible-File-Moduls eine Datei auf einem entfernten Host erstellen.

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

- hosts: localhost
  tasks:
    - name: Erstellen einer Datei auf einem entfernten Host
      file:
        path: /home/labex/file.txt
        state: touch
  • file: Ansible-Modul zum Verwalten des Dateisystems.
  • path: Gibt den Pfad zur Datei an, in diesem Fall /home/labex/file.txt.
  • state: Gibt den Status der Datei an. Hier bedeutet touch, dass die Datei erstellt wird, wenn sie nicht existiert, oder aktualisiert wird, indem die Zugriffs- und Änderungszeitstempel aktualisiert werden, wenn sie bereits existiert.

Zweck dieses Playbooks ist es, eine Datei mit dem Namen file.txt auf dem entfernten Host zu erstellen.

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

ansible-playbook file-module-playbook.yaml

Beispielausgabe:

[WARNING]: Es wurde kein Inventar analysiert, es ist nur der implizite localhost verfügbar
[WARNING]: Die bereitgestellte Hosts-Liste ist leer, es ist nur localhost verfügbar. Beachten Sie, dass der implizite localhost nicht mit 'all' übereinstimmt

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

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

TASK [Erstellen einer Datei auf einem entfernten Host] ********************************************
changed: [localhost]

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

Vergewissern Sie sich schließlich, dass die Datei file.txt im angegebenen Pfad auf dem entfernten Host erstellt wurde.

ll /home/labex/file.txt

Beispielausgabe:

-rw-rw-r-- 1 labex labex 0 Mar 10 03:12 file.txt

Sie werden die Meldung sehen, die angibt, dass /home/labex/file.txt erfolgreich erstellt wurde.

Dateiberechtigungen verwalten

In diesem Schritt lernen Sie, wie Sie Dateiberechtigungen auf einem entfernten Host mithilfe des Ansible-File-Moduls verwalten.

Ä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: Dateiberechtigungen setzen
      file:
        path: /home/labex/file.txt
        mode: "0644"
  • file: Ansible-Modul zum Verwalten des Dateisystems.
  • path: Gibt den Pfad zur Datei an, in diesem Fall /home/labex/file.txt.
  • mode: Dieser Parameter wird verwendet, um die Berechtigungsmodus der Datei festzulegen. Ersetzen Sie "0644" durch den gewünschten Berechtigungsmodus für die Datei. Weitere Informationen zu Berechtigungsmodi finden Sie in der chmod-Dokumentation.

Zweck dieses Playbooks ist es, die Berechtigungen der Datei /home/labex/file.txt auf 0644 zu setzen.

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

ansible-playbook file-module-playbook.yaml

Beispielausgabe:

[WARNING]: Es wurde kein Inventar analysiert, es ist nur der implizite localhost verfügbar
[WARNING]: Die bereitgestellte Hosts-Liste ist leer, es ist nur localhost verfügbar. Beachten Sie, dass der implizite localhost nicht mit 'all' übereinstimmt

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

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

TASK [Dateiberechtigungen setzen] ****************************************************
changed: [localhost]

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

Vergewissern Sie sich schließlich, dass die Dateiberechtigungen wie angegeben auf dem entfernten Host festgelegt sind.

ll /home/labex/file.txt

Beispielausgabe:

-rw-r--r-- 1 labex labex 0 Mar 10 03:12 /home/labex/file.txt

Das -rw-r--r-- hier zeigt an, dass der Modus von /home/labex/file.txt erfolgreich auf 0644 gesetzt wurde.

Entfernen einer Datei auf einem entfernten Host

In diesem Schritt lernen Sie, wie Sie eine Datei auf einem entfernten Host mithilfe des Ansible-File-Moduls entfernen.

Ä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: Entfernen einer Datei auf einem entfernten Host
      file:
        path: /home/labex/file.txt
        state: absent
  • file: Ansible-Modul zum Verwalten des Dateisystems.
  • path: Gibt den Pfad zur zu entfernenden Datei an, d.h. /home/labex/file.txt.
  • state: Dieser Parameter gibt an, dass die Datei im Zustand absent sein soll. Somit ist das Ziel der Aufgabe, die Datei am angegebenen Pfad zu löschen.

Zweck dieses Playbooks ist es, die Datei /home/labex/file.txt auf dem entfernten Host zu löschen.

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

ansible-playbook file-module-playbook.yaml

Beispielausgabe:

[WARNING]: Es wurde kein Inventar analysiert, es ist nur der implizite localhost verfügbar
[WARNING]: Die bereitgestellte Hosts-Liste ist leer, es ist nur localhost verfügbar. Beachten Sie, dass der implizite localhost nicht mit 'all' übereinstimmt

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

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

TASK [Entfernen einer Datei auf einem entfernten Host] ********************************************
changed: [localhost]

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

Vergewissern Sie sich schließlich, dass die Datei file.txt entfernt wurde und auf dem entfernten Host nicht mehr existiert.

ll /home/labex/file.txt

Beispielausgabe:

ls: cannot access '/home/labex/file.txt': No such file or directory

Diese Meldung zeigt an, dass die Datei /home/labex/file.txt erfolgreich gelöscht wurde.

Überprüfen der Dateiexistenz

In diesem Schritt lernen Sie, wie Sie mithilfe des Ansible-File-Moduls die Existenz einer Datei auf einem entfernten Host ü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: Überprüfen der Dateiexistenz auf einem entfernten Host
      stat:
        path: /home/labex/file.txt
      register: file_info

    - name: Drucken der Dateiexistenz
      debug:
        msg: "Datei existiert: {{ file_info.stat.exists }}"
  • stat: Dies ist eines der Ansible-Module zum Abrufen von Statusinformationen zu einer Datei oder einem Verzeichnis.
  • path: Gibt den Pfad zur zu überprüfenden Datei an, d.h. /home/labex/file.txt.
  • register: Speichert das Ergebnis der Modulausführung in der Variable file_info mithilfe des Schlüsselworts register.
  • debug: Dies ist eines der Ansible-Module, das Debuginformationen ausgibt.
  • msg: Verwenden Sie das debug-Modul, um eine Nachricht mit Informationen über die Existenz einer Datei auszugeben, die über file_info.stat.exists abgerufen wird.

Zweck dieses Playbooks ist es, die Existenz der Datei /home/labex/file.txt auf dem entfernten Host zu überprüfen und die Informationen auf die Standardausgabe auszugeben.

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

ansible-playbook file-module-playbook.yaml

Beispielausgabe:

[WARNING]: Es wurde kein Inventar analysiert, es ist nur der implizite localhost verfügbar
[WARNING]: Die bereitgestellte Hosts-Liste ist leer, es ist nur localhost verfügbar. Beachten Sie, dass der implizite localhost nicht mit 'all' übereinstimmt

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

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

TASK [Überprüfen der Dateiexistenz auf einem entfernten Host] *************************************
ok: [localhost]

TASK [Drucken der Dateiexistenz] ****************************************************
ok: [localhost] => {
    "msg": "Datei existiert: False"
}

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

Vergewissern Sie sich schließlich anhand der Ausgabe, ob die Datei file.txt auf dem entfernten Host existiert. "msg": "Datei existiert: False" zeigt an, dass die Datei /home/labex/file.txt nicht existiert.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu dem Ansible-File-Modul erfolgreich abgeschlossen. Sie haben gelernt, wie Sie mithilfe des File-Moduls Dateien und Verzeichnisse erstellen, Dateiberechtigungen verwalten, Dateien löschen und die Existenz von Dateien auf entfernten Hosts überprüfen.

Das File-Modul ist ein leistungsstarkes Werkzeug in Ansible, das es Ihnen ermöglicht, verschiedene dateibezogene Operationen während der Automatisierungstasks durchzuführen. Sie können nun mit Zuversicht das File-Modul in Ihren Ansible-Playbooks verwenden, um Dateien und Verzeichnisse effizient zu verwalten.

Bleiben Sie dabei, die Ansible-Dokumentation und andere Module zu erkunden, um Ihr Wissen zu erweitern und Ihre Automatisierungskompetenzen zu verbessern. Viel Spaß beim Umgang mit Ansible!