aalaesar.backup_nextcloud
backup_nextcloud
To rola Ansible, która tworzy kopię zapasową serwera Nextcloud. Kopia zapasowa jest przechowywana na serwerze (chyba że pobierzesz ją).
Wymagania
Rola wymaga, aby następujące narzędzia były dostępne na hoście:
- tar
- gzip
- rsync
- klient MySQL lub PostgreSQL, jeśli baza danych musi być zrzucana.
Musisz mieć wystarczająco dużo miejsca na systemie plików docelowym, w zależności od rozmiaru twojego serwera Nextcloud.
Zmienne Roli
Lokalizacja serwera nextcloud
Rola musi wiedzieć, gdzie znajdują się pliki serwera, jak uzyskać do nich dostęp i gdzie przechować kopię zapasową.
nextcloud_backup_target_dir: "/opt/nextcloud_backups"
nextcloud_webroot: "/opt/nextcloud"
# nextcloud_data_dir: "/var/ncdata" # opcjonalne.
nextcloud_websrv_user: "www-data" # być może będziesz musiał to zmienić w zależności od właściciela plików nextcloud i systemu operacyjnego
Dostosowanie właściciela kopii zapasowej
Właściciela kopii zapasowej można dostosować. Może to być przydatne, gdy użytkownik wykonujący operację różni się od właściciela procesu nextcloud.
nextcloud_backup_owner: "www-data" # nazwa użytkownika, który będzie właścicielem w backup_target_dir oraz finalnym archiwum
nextcloud_backup_group: "www-data" # grupa użytkowników, która będzie właścicielem w backup_target_dir oraz finalnym archiwum
Dostosowanie nazwy kopii zapasowej
Nazwę kopii zapasowej można dostosować za pomocą
nextcloud_instance_name: "nextcloud" # identyfikator serwera
nextcloud_backup_suffix: "" # dodatkowe informacje na końcu nazwy archiwum
nextcloud_backup_format: "tgz" # rozszerzenie archiwum. użyj formatu wspieranego przez moduł archiwum (Wybory: bz2, gz, tar, xz, zip)
Lub możesz całkowicie zmienić ją, redefiniując
nc_archive_name: "{{ nextcloud_instance_name }}_nextcloud-{{ nc_status.versionstring }}_{{ ansible_date_time.iso8601_basic_short }}{{ nextcloud_backup_suffix }}"
Dostosowanie zawartości kopii zapasowej
Rola zawsze będzie:
- wykonywać kopię zapasową konfiguracji serwera
- tworzyć listę zainstalowanych i włączonych aplikacji (razem z numerami wersji)
Zakres kopii zapasowej można dostosować, włączając/wyłączając niektóre flagi zdefiniowane w domyślnych:
nextcloud_backup_download_server_archive: true
nextcloud_backup_app_data: true
nextcloud_backup_user: true
nextcloud_backup_database: true
Dostosowywanie archiwum serwera nextcloud w kopii zapasowej
Rola może pobrać odpowiednie archiwum serwera ze strony pobierania nextcloud i dodać je do archiwum kopii zapasowej.
Można to włączyć, ustawiając zmienną: nextcloud_backup_download_server_archive
.
Dostosowanie kopii zapasowej danych aplikacji
Możesz chcieć wykluczyć niektóre foldery app_data z kopii zapasowej. Jednak nie możesz wybrać konkretnej aplikacji do wykonania kopii zapasowej, co wymagałoby znajomości kodu aplikacji.
nextcloud_backup_app_data_exclude_folder:
- preview
Domyślnie folder preview jest wykluczony z kopii zapasowej, ponieważ może być wyjątkowo duży.
Dostosowanie kopii zapasowej użytkowników
Możesz wykluczyć listę użytkowników z kopii zapasowej
nextcloud_backup_exclude_users: []
Możesz również zdecydować, czy włączyć kilka podfolderów, czy nie.
nextcloud_backup_user_files_trashbin: true
nextcloud_backup_user_files_versions: true
nextcloud_backup_user_uploads: true
nextcloud_backup_user_cache: true
Pobieranie kopii zapasowej z serwera na lokalny komputer
Możesz pobrać utworzoną kopię zapasową zdalnie, ustawiając te zmienne.
OSTRZEŻENIE: użytkownik, którego używasz w Ansible, musi być ustawiony jako właściciel kopii zapasowej z powodu ograniczenia Ansible dotyczącego używania become
z ansible.builtin.fetch
.
nextcloud_backup_fetch_to_local: true
nextcloud_backup_fetch_local_path: "/local_path/nextcloud_backup"
Inne
Możesz pozostawić serwer w trybie konserwacji na końcu procesu, ustawiając na fałsz
nextcloud_exit_maintenance_mode: true
Zależności
Brak
Przykład Playbooka
Wykonywanie pełnej kopii zapasowej serwera nextcloud
- hosts: nextcloud
roles:
- role: aalaesar.backup_nextcloud
Wykonywanie częściowej kopii zapasowej tylko danych aplikacji
- hosts: nextcloud
roles:
- role: aalaesar.backup_nextcloud
vars:
nextcloud_backup_suffix: _only_app_data
nextcloud_backup_user: false
nextcloud_backup_database: false
Licencja
GPL-3.0
Create a backup of your nextcloud server with this ansible role
ansible-galaxy install aalaesar.backup_nextcloud