newtonne.backup

Ansible 角色:备份

CI

安装和配置 borgmaticborg,用于自动备份文件以及 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

关于项目

Backup files, and MySQL and PostgreSQL databases using borg and borgmatic.

安装
ansible-galaxy install newtonne.backup
许可证
mit
下载
151
拥有者