backup_nextcloud

Статус Ansible-lint Статус YAML-lint

backup_nextcloud

Роль Ansible, которая создает резервную копию сервера Nextcloud. Резервная копия хранится на сервере (если вы не заберете её).

Требования

Роль требует наличия следующих инструментов на хосте:

  • tar
  • gzip
  • rsync
  • клиент mysql или postgreSQL, если нужно сделать дамп базы данных.

Вам потребуется достаточно места на целевой файловой системе в зависимости от размера вашего сервера nextcloud.

Переменные роли

Определение местоположения сервера nextcloud

Роль должна знать, где находятся файлы сервера, как к ним получить доступ и где хранить резервную копию.

nextcloud_backup_target_dir: "/opt/nextcloud_backups"
nextcloud_webroot: "/opt/nextcloud"
# nextcloud_data_dir: "/var/ncdata" # опционально.
nextcloud_websrv_user: "www-data" # возможно, вам нужно будет изменить это на владельца файлов nextcloud в зависимости от вашей настройки и ОС

Настройка владельца резервной копии

Владелец резервной копии может быть настроен. Это может быть полезно, если пользователь, запускающий процесс, отличается от владельца процесса nextcloud.

nextcloud_backup_owner: "www-data" # имя пользователя, который станет владельцем на backup_target_dir и финальном архиве
nextcloud_backup_group: "www-data" # группа пользователей, которая станет владельцем на backup_target_dir и финальном архиве

Настройка имени резервной копии

Имя резервной копии можно настроить следующим образом:

nextcloud_instance_name: "nextcloud" # человеко-читаемый идентификатор для сервера
nextcloud_backup_suffix: "" # произвольная информация в конце имени архива
nextcloud_backup_format: "tgz" # расширение архива. используйте поддерживаемый формат, используемый модулем архива (выбор: bz2, gz, tar, xz, zip)

Или вы можете полностью изменить его, переопределив:

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

Настройка содержания резервной копии

Роль всегда:

  • делает резервную копию конфигурации сервера
  • создает список установленных и активированных приложений (вместе с номерами версий)

Вы можете настроить объем резервной копии, включая/исключая некоторые флаги, определенные по умолчанию:

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

Настройка архива сервера nextcloud, включенного в резервную копию

Роль может загрузить соответствующий архив сервера с сайта загрузки nextcloud и добавить его в архив резервной копии. Это можно активировать с помощью переменной: nextcloud_backup_download_server_archive.

Настройка резервного копирования данных приложений

Вы можете исключить некоторые папки app_data из резервной копии. Но вы не можете выбрать конкретное приложение для резервного копирования, это требует знания кода приложения.

nextcloud_backup_app_data_exclude_folder:
  - preview

По умолчанию папка превью исключена из резервной копии, так как она может быть notoriously большой.

Настройка резервного копирования пользователей

Вы можете исключить список пользователей из резервной копии:

nextcloud_backup_exclude_users: []

Также вы можете решить, включать или нет некоторые подпапки.

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

Забор резервной копии с удаленной машины на локальную

Вы можете забрать созданную резервную копию с удаленного сервера, установив эти переменные. ПРЕДУПРЕЖДЕНИЕ: пользователь, который используется в Ansible, должен быть установлен как владелец резервной копии из-за ограничений Ansible на использование become с ansible.builtin.fetch

nextcloud_backup_fetch_to_local: true
nextcloud_backup_fetch_local_path: "/local_path/nextcloud_backup"

Прочее

Вы можете оставить сервер в режиме обслуживания в конце процесса, установив значение false:

nextcloud_exit_maintenance_mode: true

Зависимости

Нет

Пример плейбука

Запуск полной резервной копии вашего сервера nextcloud

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

Создание частичной резервной копии только с данными приложений

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

Лицензия

GPL-3.0

О проекте

Create a backup of your nextcloud server with this ansible role

Установить
ansible-galaxy install aalaesar/backup_nextcloud
Лицензия
agpl-3.0
Загрузки
618
Владелец
Yet another DevOps. I just want things to become easier and faster, ... and understand how it works ! That's a lot of work ...