aalaesar.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 }}"
调整备份内容
该角色将__始终__:
- 备份服务器的配置
- 创建已安装和启用应用程序的列表(包括版本号)
您可以通过启用/禁用 default 中定义的一些标志来调整备份范围:
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
默认情况下,预览文件夹会从备份中排除,因为它可能非常__大__()
调整用户备份
您可以排除一组用户不参与备份:
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
仅备份 app_data 的部分备份
- 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
下载
695
拥有者
Yet another DevOps.
I just want things to become easier and faster,
... and understand how it works !
That's a lot of work ...