Praktische Beispiele für das Stat-Modul
Nachdem wir nun ein solides Verständnis des Ansible Stat-Moduls und der von ihm abgerufenen Dateiattribute haben, wollen wir einige praktische Beispiele dafür untersuchen, wie Sie dieses Modul in Ihren Ansible-Playbooks verwenden können.
Prüfung der Datei-Existenz vor der Kopie
Ein gängiger Anwendungsfall für das Stat-Modul ist die Prüfung, ob eine Datei existiert, bevor versucht wird, sie auf den Zielhost zu kopieren. Dies hilft, Fehler zu vermeiden und sicherzustellen, dass Ihr Playbook reibungslos abläuft.
- name: Überprüfen, ob die Quelldatei existiert
stat:
path: /path/to/source/file.txt
register: source_file
- name: Datei kopieren, falls sie existiert
copy:
src: /path/to/source/file.txt
dest: /path/to/destination/file.txt
when: source_file.stat.exists
In diesem Beispiel wird das Stat-Modul verwendet, um zu prüfen, ob die Quelldatei existiert. Falls die Datei existiert, wird die copy
-Aufgabe ausgeführt, um die Datei an den Zielort zu kopieren. Die when
-Bedingung stellt sicher, dass die Kopieraufgabe nur ausgeführt wird, wenn die Quelldatei existiert.
Erzwingen von Dateirechten
Ein weiterer gängiger Anwendungsfall für das Stat-Modul ist die Sicherstellung, dass Dateien und Verzeichnisse die korrekten Berechtigungen haben. Sie können das Attribut stat.mode
verwenden, um die aktuellen Berechtigungen zu überprüfen und dann die gewünschten Berechtigungen mithilfe des file
-Moduls festzulegen.
- name: Dateirechte sicherstellen
file:
path: /path/to/file.txt
mode: "0644"
when: file_info.stat.mode != '0644'
register: file_info
In diesem Beispiel wird das Stat-Modul verwendet, um die aktuellen Dateirechte zu überprüfen. Wenn die Berechtigungen nicht dem gewünschten Wert 0644
entsprechen, wird das file
-Modul verwendet, um die korrekten Berechtigungen festzulegen.
Bedingte Ausführung basierend auf dem Dateityp
Das Stat-Modul kann auch verwendet werden, um Entscheidungen basierend auf dem Typ der Datei oder des Verzeichnisses zu treffen. Beispielsweise können Sie unterschiedliche Aktionen für reguläre Dateien und Verzeichnisse durchführen.
- name: Dateityp überprüfen
stat:
path: /path/to/file_or_directory
register: path_info
- name: Reguläre Datei behandeln
copy:
src: /path/to/file_or_directory
dest: /path/to/destination
when: path_info.stat.isfile
- name: Verzeichnis behandeln
unarchive:
src: /path/to/file_or_directory
dest: /path/to/destination
when: path_info.stat.isdir
In diesem Beispiel wird das Stat-Modul verwendet, um den Typ der Datei oder des Verzeichnisses am angegebenen Pfad zu bestimmen. Basierend auf dem Dateityp wird entweder die copy
-Aufgabe (für reguläre Dateien) oder die unarchive
-Aufgabe (für Verzeichnisse) ausgeführt.
Dies sind nur einige Beispiele dafür, wie Sie das Ansible Stat-Modul in Ihren Playbooks verwenden können. Durch die Nutzung der Datei-Metadaten, die dieses Modul bereitstellt, können Sie robustere und intelligentere Automatisierungsabläufe erstellen, die sich an die spezifischen Bedingungen Ihrer Zielsysteme anpassen.