aalaesar.backup_nextcloud
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
Create a backup of your nextcloud server with this ansible role
ansible-galaxy install aalaesar.backup_nextcloud