newtonne.backup
Ansible 角色:备份
安装和配置 borgmatic 和 borg,用于自动备份文件以及 MySQL 和 PostgreSQL 数据库。
要求
可选要求:
必须安装
cron
以自动化备份。必须安装 MySQL 或兼容 MySQL 的数据库以备份 MySQL 数据库。同样适用于 PostgreSQL 数据库。
角色变量
下面是可用变量及其默认值(见 defaults/main.yml):
与 Borgmatic 配置相关
backup_directories: []
要备份的目录(或单个文件)列表。
backup_mysql_databases: []
要备份的 MySQL 数据库列表。更多信息见 borgmatic - 数据库转储钩子。
backup_postgresql_databases: []
要备份的 PostgreSQL 数据库列表。更多信息见 borgmatic - 数据库转储钩子。
backup_repositories: []
要备份的 borg
存储库列表。这些必须事先使用 borg init
创建。更多信息见 borg 文档关于存储库 URL。
backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}
这些变量可用于向 borgmatic
提供额外配置,例如 borg
存储库的加密密码或额外/替代的钩子脚本/命令。完整的配置选项见 borgmatic schema。
backup_hooks_globlist: hooks/*
文件模式,control 机器用于查找钩子脚本。
backup_hooks_directory: /etc/borgmatic/hooks
任何通过上述文件模式找到的 borgmatic
钩子脚本将被复制到该目录。
一般设置
backup_cron_jobs
- schedule: "0 3 * * *"
# action: create
要执行的 cron 时间规格和操作列表。如果没有指定操作,borgmatic
将执行所有操作,即修剪、创建和检查(见 borgmatic 文档 - 设置备份)。如果设置为空,则不配置 crontab。
backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"
在 crontab 顶部设置的 $PATH
值。
backup_verbosity: 0
运行 borgmatic
时的详细程度。见 borgmatic 命令行参考。
backup_user: root
执行备份并拥有各种备份相关文件和目录的用户。
backup_group: root
将拥有各种备份相关文件和目录的组。
backup_config_directory: /etc/borgmatic
borgmatic
配置文件将放置的目录。
backup_log_file: /var/log/borgmatic.log
borgmatic
输出将记录到的文件。
安装相关
backup_borg_keyserver: hkps://keys.openpgp.org
可从中下载 borg
公钥的 GPG 密钥服务器。
backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393
borg
公钥的指纹。见 borg 文档 - 安全性。
backup_borg_url: https://github.com/borgbackup/borg/releases/download
下载 borg
二进制文件的 URL。
backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}
要下载的 borg
二进制资产的名称。
backup_borg_version: 1.1.17
要下载的 borg
二进制文件版本。
backup_borg_path: /usr/local/bin/borg
将安装 borg
二进制文件的路径。如果该文件已经存在,将不会尝试安装 borg
。
backup_borgmatic_version: 1.5.20
使用 pip 安装的 borgmatic
版本。
backup_borgmatic_venv: /etc/borgmatic/venv
pip 将安装 borgmatic
的虚拟环境。如果它不存在,将创建该环境。
依赖
无
示例剧本
- hosts: servers
vars:
backup_directories:
- /etc/myapp
- /var/myapp
backup_repositories:
- user@host1:server_backup1
- user@host2:server_backup2
backup_storage_options:
encryption_passphrase: secretpassword
backup_retention_options:
keep_daily: 7
keep_weekly: 4
backup_cron_jobs:
- schedule: "0 2 * * *"
roles:
- { role: newtonne.backup }
许可
MIT