backup_nextcloud
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