aalaesar.backup_nextcloud

Ansible-lint-Status YAML-lint-Status

backup_nextcloud

Eine Ansible-Rolle, die ein Backup eines Nextcloud-Servers erstellt. Das Backup wird auf dem Server gespeichert (es sei denn, du lädst es herunter).

Anforderungen

Die Rolle benötigt folgende Werkzeuge auf dem Host:

  • tar
  • gzip
  • rsync
  • einen MySQL- oder PostgreSQL-Client, falls die Datenbank gesichert werden muss.

Du benötigst genügend Speicherplatz im Dateisystem, abhängig von der Größe deines Nextcloud-Servers.

Rollenvariablen

Lokalisierung des Nextcloud-Servers

Die Rolle muss wissen, wo die Serverdateien sind, wie darauf zugegriffen werden kann und wo das Backup gespeichert werden soll.

nextcloud_backup_target_dir: "/opt/nextcloud_backups"
nextcloud_webroot: "/opt/nextcloud"
# nextcloud_data_dir: "/var/ncdata" # optional.
nextcloud_websrv_user: "www-data" # eventuell musst du dies an den Dateibesitzer von Nextcloud anpassen, je nach deiner Einrichtung und deinem Betriebssystem.

Anpassung des Backup-Besitzers

Der Backup-Besitzer kann angepasst werden. Dies kann nützlich sein, wenn der ausführende Benutzer anders ist als der Prozessbesitzer von Nextcloud.

nextcloud_backup_owner: "www-data" # Benutzername, der Eigentümer des backup_target_dir und des finalen Archivs wird
nextcloud_backup_group: "www-data" # Benutzergruppe, die Eigentümer des backup_target_dir und des finalen Archivs wird

Anpassung des Backup-Namens

Der Backup-Name kann angepasst werden mit

nextcloud_instance_name: "nextcloud" # ein menschlicher Bezeichner für den Server
nextcloud_backup_suffix: "" # beliebige Informationen am Ende des Archivnamens
nextcloud_backup_format: "tgz" # Erweiterung des Archivs. Verwende ein unterstütztes Format, das vom Archiv-Modul genutzt wird (Wahlmöglichkeiten: bz2, gz, tar, xz, zip)

Oder du kannst es komplett ändern, indem du es neu definierst

nc_archive_name: "{{ nextcloud_instance_name }}_nextcloud-{{ nc_status.versionstring }}_{{ ansible_date_time.iso8601_basic_short }}{{ nextcloud_backup_suffix }}"

Anpassung des Backup-Inhalts

Die Rolle wird immer:

  • die Serverkonfiguration sichern
  • eine Liste der installierten und aktivierten Anwendungen (mit den Versionsnummern) erstellen

Du kannst den Umfang des Backups anpassen, indem du einige in den Standard definierten Flags aktivierst/deaktivierst:

nextcloud_backup_download_server_archive: true
nextcloud_backup_app_data: true
nextcloud_backup_user: true
nextcloud_backup_database: true

Anpassung des Nextcloud-Server-Archivs, das im Backup enthalten ist

Die Rolle kann das entsprechende Server-Archiv von der Nextcloud-Download-Seite herunterladen und dem Backup-Archiv hinzufügen. Dies kann aktiviert werden, indem die Variable nextcloud_backup_download_server_archive gesetzt wird.

Anpassung der App-Daten-Sicherung

Du möchtest eventuell einige App_Daten-Ordner vom Backup ausschließen. Du kannst jedoch keine spezifische App für das Backup auswählen, dafür ist Wissen über den Code der App erforderlich.

nextcloud_backup_app_data_exclude_folder:
  - preview

Standardmäßig wird der Ordner "preview" vom Backup ausgeschlossen, da er häufig sehr groß ist.

Anpassung der Benutzersicherung

Du kannst eine Liste von Benutzer(n) vom Backup ausschließen

nextcloud_backup_exclude_users: []

Du kannst auch entscheiden, ob einige Unterordner einbezogen werden sollen oder nicht.

nextcloud_backup_user_files_trashbin: true
nextcloud_backup_user_files_versions: true
nextcloud_backup_user_uploads: true
nextcloud_backup_user_cache: true

Herunterladen des Backups von der Remote-Maschine zur lokalen Maschine

Du kannst das erstellte Backup von der Remote-Maschine laden, indem du diese Variablen setzt. WARNUNG: Der Benutzer, den du in Ansible verwendest, muss als Backup-Besitzer festgelegt sein, aufgrund der Ansible-Einschränkung bei der Verwendung von become mit ansible.builtin.fetch.

nextcloud_backup_fetch_to_local: true
nextcloud_backup_fetch_local_path: "/local_path/nextcloud_backup"

Sonstiges

Du kannst den Server nach dem Prozess im Wartungsmodus belassen, indem du dies auf false setzt.

nextcloud_exit_maintenance_mode: true

Abhängigkeiten

Keine

Beispiel-Playbook

Vollständige Sicherung deines Nextcloud-Servers ausführen

- hosts: nextcloud
  roles:
    - role: aalaesar.backup_nextcloud

Teilweise Sicherung, nur die App-Daten

- hosts: nextcloud
  roles:
    - role: aalaesar.backup_nextcloud
  vars:
    nextcloud_backup_suffix: _only_app_data
    nextcloud_backup_user: false
    nextcloud_backup_database: false

Lizenz

GPL-3.0

Über das Projekt

Create a backup of your nextcloud server with this ansible role

Installieren
ansible-galaxy install aalaesar.backup_nextcloud
GitHub Repository
Lizenz
agpl-3.0
Downloads
695
Besitzer
Yet another DevOps. I just want things to become easier and faster, ... and understand how it works ! That's a lot of work ...