aalaesar.backup_nextcloud

Statut d'Ansible-lint Statut de YAML-lint

backup_nextcloud

Un rôle Ansible qui crée une sauvegarde d'un serveur Nextcloud. La sauvegarde est conservée sur le serveur (à moins que vous ne la récupériez).

Exigences

Le rôle nécessite que les outils suivants soient disponibles sur l'hôte :

  • tar
  • gzip
  • rsync
  • un client MySQL ou PostgreSQL si la base de données doit être exportée.

Vous aurez besoin d'un espace suffisant sur le système de fichiers cible, en fonction de la taille de votre serveur Nextcloud.

Variables du rôle

Localiser le serveur Nextcloud

Le rôle doit savoir où se trouvent les fichiers du serveur, comment y accéder et où stocker la sauvegarde.

nextcloud_backup_target_dir: "/opt/nextcloud_backups"
nextcloud_webroot: "/opt/nextcloud"
# nextcloud_data_dir: "/var/ncdata" # optionnel.
nextcloud_websrv_user: "www-data" # vous devrez peut-être changer cela en fonction du propriétaire des fichiers Nextcloud selon votre configuration et système d'exploitation

Ajuster le propriétaire de la sauvegarde

Le propriétaire de la sauvegarde peut être ajusté. Cela peut être utile lorsque l'utilisateur opérant est différent du propriétaire du processus Nextcloud.

nextcloud_backup_owner: "www-data" # nom d'utilisateur qui sera le propriétaire du dossier de sauvegarde et de l'archive finale
nextcloud_backup_group: "www-data" # groupe d'utilisateurs qui sera le propriétaire du dossier de sauvegarde et de l'archive finale

Ajuster le nom de la sauvegarde

Le nom de la sauvegarde peut être ajusté avec

nextcloud_instance_name: "nextcloud" # un identifiant humain pour le serveur
nextcloud_backup_suffix: "" # des informations arbitraires à la fin du nom de l'archive
nextcloud_backup_format: "tgz" # extension de l'archive. utilisez un format pris en charge par le module d'archive (Choix : bz2, gz, tar, xz, zip)

Ou vous pouvez modifier complètement en redéfinissant

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

Ajuster le contenu de la sauvegarde

Le rôle sauvegardera toujours :

  • la configuration du serveur
  • créera une liste des applications installées et activées (avec les numéros de version)

Vous pouvez ajuster la portée de la sauvegarde en activant/désactivant certains drapeaux définis par défaut :

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

Ajuster l'archive du serveur Nextcloud incluse dans la sauvegarde

Le rôle peut télécharger l'archive appropriée du site de téléchargement Nextcloud et l'ajouter à l'archive de sauvegarde. Cela peut être activé en utilisant : la variable nextcloud_backup_download_server_archive.

Ajuster la sauvegarde des données d'application

Vous souhaitez peut-être exclure certains dossiers app_data de la sauvegarde. Mais vous ne pouvez pas cibler une application spécifique pour la sauvegarde, cela nécessite une connaissance du code de l'application.

nextcloud_backup_app_data_exclude_folder:
  - preview

Par défaut, le dossier de prévisualisation est exclu de la sauvegarde car il peut être notoirement grand.

Ajuster la sauvegarde des utilisateurs

Vous pouvez exclure une liste d'utilisateur(s) de la sauvegarde

nextcloud_backup_exclude_users: []

Vous pouvez également décider d'inclure ou non certains sous-dossiers.

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

Récupérer la sauvegarde de distant à local

Vous pouvez récupérer la sauvegarde créée de distant en définissant ces variables. AVERTISSEMENT : l'utilisateur que vous utilisez dans Ansible doit être défini comme propriétaire de la sauvegarde en raison de la limitation d'Ansible sur l'utilisation de become avec ansible.builtin.fetch

nextcloud_backup_fetch_to_local: true
nextcloud_backup_fetch_local_path: "/local_path/nextcloud_backup"

Autre

Vous pouvez laisser le serveur en mode maintenance à la fin du processus en mettant faux

nextcloud_exit_maintenance_mode: true

Les Dépendances

Aucune

Exemple de Playbook

Effectuer une sauvegarde complète de votre serveur Nextcloud

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

Faire une sauvegarde partielle avec seulement les données d'application

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

Licence

GPL-3.0

À propos du projet

Create a backup of your nextcloud server with this ansible role

Installer
ansible-galaxy install aalaesar.backup_nextcloud
Licence
agpl-3.0
Téléchargements
695
Propriétaire
Yet another DevOps. I just want things to become easier and faster, ... and understand how it works ! That's a lot of work ...