aalaesar.backup_nextcloud

Estado de ansible-lint Estado de YAML-lint

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

Acerca del proyecto

Create a backup of your nextcloud server with this ansible role

Instalar
ansible-galaxy install aalaesar.backup_nextcloud
Licencia
agpl-3.0
Descargas
695
Propietario
Yet another DevOps. I just want things to become easier and faster, ... and understand how it works ! That's a lot of work ...