tag1consulting.borgbackup

Borg 备份角色

这是 https://github.com/FiaasCo/borgbackup 的一个分支,最初由 Luc Stroobant 和 Dieter Verhelst 编写。 该分支由 Tag1 Consulting, Inc. 维护。

此角色在 borgbackup_服务器和客户端上安装 Borg 备份。该角色包含一个包装脚本“borg-backup”,以简化客户端的使用。支持的选项包括 borg-backup info | init | list | backup | mount。如果安装了 Automysqlbackup,它将在备份前运行。

该角色支持自托管和离站备份存储,例如使用 rsync.net 和 hetzner 存储箱作为 Borg 服务器。

可以配置仅追加仓库,以防止客户端删除备份。

运行此角色需要 Ansible 2.4 或更高版本。

Ansible Galaxy

Ansible Galaxy 上,此角色是 tag1consulting.borgbackup。 要在剧本中使用此角色,请将以下内容添加到 requirements.txt 文件中:

# https://github.com/tag1consulting/ansible-role-borgbackup
- src: "tag1consulting.borgbackup"

所需变量

在您的清单中定义一个名为 borgbackup_servers 的组,包含一个或多个主机。如果您希望启用仅追加模式并从安全主机修剪备份,则只需对 borgbackup_management 组进行配置。

[borgbackup_servers]
backup1.fiaas.co

[borgbackup_management]
supersecurehost

为您的备份端点和保留策略定义组变量或主机变量:

borgbackup_servers:
  - fqdn: backup1.fiaas.co
    user: borgbackup
    type: normal
    home: /backup/
    pool: repos
    options: ""
  - fqdn: yourhost.rsync.net
    user: userid
    type: rsync.net
    home: ""
    pool: repos
    options: "--remote-path=borg1"
  - fqdn: username.your-storagebox.de
    user: username
    type: hetzner
    home: ""
    pool: repos
    options: ""

borgbackup_retention:
  hourly: 12
  daily: 7
  weekly: 4
  monthly: 6
  yearly: 1

警告:item.home 中的尾部 / 是必需的。

为每个主机定义 borg_passphrase。 host_vars\client1:

borgbackup_passphrase: Ahl9EiNohr5koosh1Wohs3Shoo3ooZ6p

默认情况下,该角色会在 /etc/cron.d/borg-backup 中创建一个每天以随机的分钟和小时(在 0 到 5 点之间)运行的 cron 任务,运行用户为 root。如有必要,可覆盖默认设置:

borgbackup_client_user: root
borgbackup_cron_day: "*"
borgbackup_cron_minute: "{{ 59|random }}"
borgbackup_cron_hour: "{{ 5|random }}"

在需要的情况下重写 borgbackup_client_user,例如,如果您有一个带加密主目录的笔记本电脑,您需要以主目录用户的身份运行备份。

如果您想要仅追加仓库,请在主机或组变量中设置 borgbackup_appendonly: True。这样可以在 borgbackup_management_station 中定义一个主机名,以配置 borg prune 脚本。只有管理站点才能修剪旧备份(所有)客户端。这将生成具有 --append-only ssh 密钥选项的服务。 如果您将 borgbackup_appendonly_repoconfig 设置为 True,这也将禁用从管理站点删除备份的功能。(或者至少:在重新配置仓库之前无法删除,而这目前在 prune 脚本中不受支持) 请注意仅追加模式的局限性:修剪的备份似乎被删除,但仅在事务日志中被删除,直到有东西以正常模式写入到仓库中)

确保检查该角色的配置默认值,其中包含在 backup_include 中备份的默认位置列表。你可以在你的清单中按需重写。

从 EPEL 包安装 Borg

可以通过设置变量从 EPEL 包安装 Borg:

borgbackup_install_from_pkg: true

必须安装 EPEL 仓库才能成功。使用 geerlingguy.repo-epel 角色安装 EPEL 仓库,请设置:

borgbackup_install_epel: true

使用

在服务器和客户端上配置 Borg:

ansible-playbook -i inventory/test backup.yml -l backup1.fiaas.co
ansible-playbook -i inventory/test backup.yml -l client1.fiaas.co

进一步阅读

关于项目

Install Borg backup server and client (with rsync.net server support)

安装
ansible-galaxy install tag1consulting.borgbackup
许可证
mit
下载
2.1k
拥有者