aalaesar.backup_nextcloud
backup_nextcloud
Un rol de ansible que crea una copia de seguridad de un servidor Nextcloud. La copia de seguridad se mantiene en el servidor (a menos que la descargues).
Requisitos
El rol requiere que las siguientes herramientas estén disponibles en el host:
- tar
- gzip
- rsync
- un cliente de mysql o postgreSQL si se debe hacer un volcado de la base de datos.
Necesitarás suficiente espacio en el sistema de archivos de destino, dependiendo del tamaño de tu servidor Nextcloud.
Variables del rol
Localizando el servidor Nextcloud
El rol necesita saber dónde están los archivos del servidor, cómo acceder a ellos y dónde almacenar la copia de seguridad.
nextcloud_backup_target_dir: "/opt/nextcloud_backups"
nextcloud_webroot: "/opt/nextcloud"
# nextcloud_data_dir: "/var/ncdata" # opcional.
nextcloud_websrv_user: "www-data" # podrías necesitar cambiar esto al propietario de los archivos de nextcloud dependiendo de tu configuración y SO
Ajustando el propietario de la copia de seguridad
El propietario de la copia de seguridad se puede ajustar con. Esto puede ser útil cuando el usuario que opera es diferente al propietario del proceso de nextcloud.
nextcloud_backup_owner: "www-data" # nombre de usuario que será el propietario en backup_target_dir y archivo final
nextcloud_backup_group: "www-data" # grupo de usuarios que será el propietario en backup_target_dir y archivo final
Ajustando el nombre de la copia de seguridad
El nombre de la copia de seguridad se puede ajustar con
nextcloud_instance_name: "nextcloud" # un identificador humano para el servidor
nextcloud_backup_suffix: "" # alguna información arbitraria al final del nombre del archivo
nextcloud_backup_format: "tgz" # extensión del archivo. usa un formato compatible utilizado por el módulo de archivo (Opciones: bz2, gz, tar, xz, zip)
O puedes cambiarlo completamente redefiniendo
nc_archive_name: "{{ nextcloud_instance_name }}_nextcloud-{{ nc_status.versionstring }}_{{ ansible_date_time.iso8601_basic_short }}{{ nextcloud_backup_suffix }}"
Ajustando el contenido de la copia de seguridad
El rol siempre:
- hará una copia de seguridad de la configuración del servidor
- creará una lista de aplicaciones instaladas y habilitadas (junto con los números de versión)
Puedes ajustar el alcance de la copia de seguridad habilitando/deshabilitando algunas banderas definidas en el valor predeterminado:
nextcloud_backup_download_server_archive: true
nextcloud_backup_app_data: true
nextcloud_backup_user: true
nextcloud_backup_database: true
Ajustando la carpeta del servidor Nextcloud incluida en la copia de seguridad
El rol puede descargar el archivo del servidor adecuado desde el sitio de descargas de Nextcloud y agregarlo a la copia de seguridad.
Se puede activar utilizando la variable: nextcloud_backup_download_server_archive
.
Ajustando la copia de seguridad de los datos de la aplicación
Puede que quieras excluir algunas carpetas de app_data de la copia de seguridad. Pero no puedes seleccionar una aplicación específica para respaldar, esto requiere conocimiento del código de la aplicación.
nextcloud_backup_app_data_exclude_folder:
- preview
Por defecto, la carpeta de vista previa se excluye de la copia de seguridad, ya que puede ser notoriamente grande.
Ajustando la copia de seguridad de usuarios
Puedes excluir una lista de usuario(s) de la copia de seguridad
nextcloud_backup_exclude_users: []
También puedes decidir incluir o no algunas subcarpetas.
nextcloud_backup_user_files_trashbin: true
nextcloud_backup_user_files_versions: true
nextcloud_backup_user_uploads: true
nextcloud_backup_user_cache: true
Descargando la copia de seguridad de remoto a máquina local
Puedes descargar la copia de seguridad creada desde remoto configurando estas variables.
ADVERTENCIA: el usuario que uses en Ansible tiene que estar establecido como propietario de la copia de seguridad debido a la limitación de Ansible al usar become
con ansible.builtin.fetch
nextcloud_backup_fetch_to_local: true
nextcloud_backup_fetch_local_path: "/local_path/nextcloud_backup"
Otro
Puedes dejar el servidor en modo de mantenimiento al final del proceso cambiando a falso
nextcloud_exit_maintenance_mode: true
Dependencias
Ninguna
Ejemplo de Playbook
Realizando una copia de seguridad completa de tu servidor Nextcloud
- hosts: nextcloud
roles:
- role: aalaesar.backup_nextcloud
Haciendo una copia de seguridad parcial solo con los datos de la aplicación
- hosts: nextcloud
roles:
- role: aalaesar.backup_nextcloud
vars:
nextcloud_backup_suffix: _solo_datos_aplicacion
nextcloud_backup_user: false
nextcloud_backup_database: false
Licencia
GPL-3.0
Create a backup of your nextcloud server with this ansible role
ansible-galaxy install aalaesar.backup_nextcloud