From f495259c728667eb670aa2bd52182d0d4408a0fa Mon Sep 17 00:00:00 2001 From: Tim Schilling Date: Thu, 28 Nov 2024 08:43:20 +0100 Subject: [PATCH] Inital offsite commit --- extraction.yml | 78 +++++++++++++++++++++++++++++++--------- inventory/testserver.ini | 10 +++++- 2 files changed, 70 insertions(+), 18 deletions(-) diff --git a/extraction.yml b/extraction.yml index bca3d96..e49b354 100644 --- a/extraction.yml +++ b/extraction.yml @@ -2,23 +2,32 @@ - name: WebDAV Freigabe einbinden hosts: webdav_testserver become: true + vars: + webdav_url: "https://www.kommsafe.de/webdav/Stadt%20K%C3%B6nigsbrunn/IuK/Schilling" + webdav_user: "tim.schilling@koenigsbrunn.de" + webdav_password: "HgdKS-P2004!" + mount_point: "/mnt/webdav" tasks: - - name: DavFS2 installieren + - name: Installiere rclone apt: - name: davfs2 + name: rclone state: present + when: ansible_facts['os_family'] == 'Debian' - - name: Benutzerrechte für davfs2 einrichten - lineinfile: - path: /etc/fstab - line: "{{ webdav_url }} {{ mount_point }} davfs rw,user,noauto 0 0" - state: present + - name: Verschlüssele das WebDAV-Passwort mit rclone obscure + command: rclone obscure "{{ webdav_password }}" + register: obscure_output - - name: WebDAV-Zugangsdaten hinzufügen + - name: WebDAV-Konfigurationsdatei erstellen copy: - dest: /etc/davfs2/secrets + dest: /root/.config/rclone/rclone.conf content: | - {{ webdav_url }} {{ webdav_user }} {{ webdav_password }} + [webdav] + type = webdav + url = {{ webdav_url }} + vendor = other + user = {{ webdav_user }} + pass = {{ obscure_output.stdout }} owner: root group: root mode: "0600" @@ -29,10 +38,45 @@ state: directory mode: "0755" - - name: WebDAV Freigabe einbinden - ansible.posix.mount: - path: "{{ mount_point }}" - src: "{{ webdav_url }}" - fstype: davfs - opts: rw,user,noauto - state: mounted + - name: WebDAV Freigabe mounten + command: > + rclone mount webdav: {{ mount_point }} --daemon --allow-other + args: + creates: "{{ mount_point }}/.mounted" + +- name: Docker Backupcontainer Starten + hosts: dockerhost + gather_facts: false + module_defaults: + tasks: + - name: Start container + community.docker.docker_container: + command: python + detach: false + name: my-python-container + output_logs: true + + - name: Erstelle Test Datein + file: + path: /home/tim/export/data/testfile.json + state: touch + owner: tim + group: tim + mode: '0644' + + +- name: Datein Transferieren + hosts: backuptransfer + vars: + mount_point: "/mnt/webdav" + tasks: + - name: Datei von Dockerhost auf Master übertragen + run_once: true + fetch: src=/home/tim/extport/data/testfile.json dest=buffer/ flat=true + when: ansible_facts[inventory_hostname] == 'Tim-tt-02.kitl.bayern' + + - name: Datei von Master auf Webdav übertragen + copy: src=buffer/ dest="{{ mount_point }}" + when: ansible_facts[inventory_hostname] == 'Tim-tt-01.kitl.bayern' + + diff --git a/inventory/testserver.ini b/inventory/testserver.ini index 0a02918..08628ce 100644 --- a/inventory/testserver.ini +++ b/inventory/testserver.ini @@ -9,5 +9,13 @@ ansible_private_key_file = keys/id_ed25519 [webserver] linuxerver +[backuptransfer:childern] +webdav_testserver +dockerhost + [webdav_testserver] -Tim-TT-01.kitl.bayern \ No newline at end of file +Tim-TT-01.kitl.bayern + +[dockerhost] +Tim-tt-02.kitl.bayern +