Dieses Ansible Playbook ist dein flexibles Werkzeug zum Kopieren, Überschreiben oder Ergänzen von Dateien und Verzeichnissen. Es hilft dir, diese Dateioperationen über verschiedene Hosts hinweg zu automatisieren, indem du einfach die im Playbook definierten Variablen anpasst. Mit diesem Skript kannst du effizient und konsistent Daten zwischen verschiedenen Speicherorten verschieben oder aktualisieren.
So funktioniert’s:
source_path
: Der Pfad zur Quelle, die du kopieren, überschreiben oder ergänzen möchtest. Das kann ein Verzeichnis oder eine Datei sein.dest_path
: Der Zielpfad, an den die Daten übertragen werden sollen. Auch dies kann ein Verzeichnis oder eine Datei sein.action
: Bestimmt die Art der Dateioperation, die du durchführen willst. Mögliche Werte sind:copy
: Kopiert die Daten vom Quell- zum Zielpfad.overwrite
: Überschreibt die Daten am Zielpfad mit den Daten vom Quellpfad.append
: Fügt die Daten vom Quellpfad an die bestehenden Daten am Zielpfad an.
Die Aufgaben im Playbook
Das Playbook enthält drei Hauptaufgaben, die je nach dem Wert der action
-Variable ausgeführt werden:
- Daten kopieren: Diese Aufgabe wird ausgeführt, wenn
action
aufcopy
gesetzt ist. Es verwendet dascopy
-Modul von Ansible, um die Daten vom Quellpfad zum Zielpfad zu kopieren. - Daten überschreiben: Diese Aufgabe wird ausgeführt, wenn
action
aufoverwrite
gesetzt ist. Auch hier wird dascopy
-Modul verwendet, jedoch mit der zusätzlichen Optionforce: yes
, damit die bestehenden Daten am Zielpfad überschrieben werden. - Daten ergänzen: Diese Aufgabe wird ausgeführt, wenn
action
aufappend
gesetzt ist. Hier kommt ein Bash-Kommando zum Einsatz, das die Daten vom Quellpfad an die bestehenden Daten am Zielpfad anhängt.
Dieses Playbook bietet dir eine einfache und flexible Möglichkeit, verschiedene Dateioperationen in einem automatisierten Prozess durchzuführen. Es ist besonders praktisch, wenn du regelmäßig Daten zwischen verschiedenen Systemen synchronisieren oder aktualisieren musst.
---
- name: Flexibles Playbook zum Kopieren von Daten
hosts: all
vars:
source_path: "/pfad/zur/quelle" # Quellverzeichnis oder -datei
dest_path: "/pfad/zum/ziel" # Zielverzeichnis oder -datei
action: "copy" # Mögliche Werte: copy, overwrite, append
tasks:
- name: Daten kopieren
copy:
src: "{{ source_path }}"
dest: "{{ dest_path }}"
when: action == "copy"
- name: Daten überschreiben
copy:
src: "{{ source_path }}"
dest: "{{ dest_path }}"
force: yes
when: action == "overwrite"
- name: Daten ergänzen
command: bash -c 'cat {{ source_path }} >> {{ dest_path }}'
when: action == "append"
Schreibe einen Kommentar