borgbase.ansible_role_borgbackup

Ansible 角色:BorgBackup 客户端

测试 Ansible Galaxy

使用 BorgBackupBorgmatic 设置加密、压缩和去重的备份。当前支持 Debian/Ubuntu、CentOS/Red Hat/Fedora、Archlinux 和 Manjaro。

BorgBase.com 配合使用效果很好 - 一个简单安全的 Borg 存储库托管。有关通过 Ansible 管理 BorgBase 存储库的内容,请参阅 Andy Hawkins 的 BorgBase Collection

主要功能

  • 从 PyPi 或发行版包安装 Borg 和 Borgmatic
  • 设置 Borgmatic 配置
  • 使用 Cron 或 Systemd timer 定期安排备份

重大变更

  • 旧版本的此角色为创建和检查备份设置了一个单独的 Cron 任务。最近的 Borgmatic 版本已经在 Borgmatic 中管理此功能。因此,该额外的 Cron 任务将由此角色删除。
  • 旧版本的此角色只支持 Cron 排程。如果您使用 Systemd timers,请确保先删除 /etc/cron.d/borgmatic 中的 Cron 任务。该角色在尝试同时使用两个定时器时也会提示您。

示例剧本,使用 root 作为备份用户和 Cron 定时器

- hosts: all
  roles:
  - role: borgbase.ansible_role_borgbackup
    borg_encryption_passphrase: CHANGEME
    borg_repository:
      - ssh://[email protected]/./repo
    borg_source_directories:
      - /var/www
    borgmatic_hooks:
      before_backup:
      - echo "`date` - Starting backup."
      postgresql_databases:
      - name: users
        hostname: database1.example.org
        port: 5433

示例剧本,使用服务用户和 Systemd 定时器

- hosts: all
  roles:
  - role: borgbase.ansible_role_borgbackup
    borg_encryption_passphrase: CHANGEME
    borg_repository: ssh://[email protected]/./repo
    borgmatic_timer: systemd
    borg_user: "backupuser"
    borg_group: "backupuser"
    borg_source_directories:
      - /var/www
    borg_retention_policy:
      keep_hourly: 3
      keep_daily: 7
      keep_weekly: 4
      keep_monthly: 6

安装

从 Ansible Galaxy 下载

$ ansible-galaxy install borgbase.ansible_role_borgbackup

从 Github 克隆最新版本

$ git clone https://github.com/borgbase/ansible-role-borgbackup.git roles/ansible_role_borgbackup

角色变量

必需变量

  • borg_repository:存储库的完整路径。可以是您自己的服务器或 BorgBase.com 存储库。如果要备份到多个存储库,可以使用列表。

可选变量

  • borg_dep_packages:要安装 borg(backup)borgmatic 的依赖包。

  • borg_distro_packages:包含 borg(backup)borgmatic 的发行版包名称,仅在 borg_install_method 设置为 package 时使用。

  • borg_encryption_passcommand:此命令的标准输出用于解锁加密密钥。

  • borg_encryption_passphrase:用于 repokey 或密钥文件的密码。如果存储库未加密,则为空。

  • borg_exclude_from:从一个或多个单独命名的文件读取排除模式,每行一个模式。

  • borg_exclude_patterns:要从备份中排除的路径或模式。有关更多信息,请参见 官方文档

  • borg_install_method:默认情况下使用 pip 安装 borgmatic。要通过您的发行版包管理器进行安装,将此设置为 package,并(如有必要)覆盖 borg_distro_packages 变量以包含安装 borgmatic 所需的发行版包名称。请注意,许多发行版提供过时版本的 borgbackup 和 borgmatic;请自行使用。

  • borg_require_epel:在基于 RHEL 的发行版上使用 borg_install_method: package 时,EPEL 存储库是必需的。要禁用检查(例如,在使用自定义镜像而不是 epel-release 包时),将其设置为 false。默认值为 {{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }}(即在企业 Linux 基于的发行版上为 true)。

  • borg_lock_wait_time:配置获取存储库/缓存锁的最大等待时间(秒)。默认值为 5 秒。

  • borg_one_file_system:不跨文件系统边界。默认值为 true

  • borg_pip_packages:要安装 borg(backup)borgmatic 的依赖包(pip)。

  • borg_remote_path:远程 borg 可执行文件的路径。默认为 borg

  • borg_remote_rate_limit:远程网络上传速率限制,以 kiBytes/秒为单位。

  • borg_retention_policy:每个类别(每日、每周、每月等)保留的备份数量的保留政策。

  • borg_source_directories:要备份的本地文件夹列表。默认是 /etc/hostname,以防止备份为空。

  • borg_ssh_key_name:SSH 公私钥的名称。默认 id_ed25519

  • borg_ssh_key_file_path:要使用的 SSH 密钥。默认 ~/.ssh/{{ borg_ssh_key_name }}

  • borg_ssh_key_type:用于生成 SSH 私钥的算法。选择:rsadsarsa1ecdsaed25519。默认值:ed25519

  • borg_ssh_command:替代 "ssh" 的命令。这可以用来指定 SSH 选项。

  • borg_version:强制安装特定的 borg 版本。

  • borg_venv_path:存储 borg(backup)borgmatic 的虚拟环境的路径。

  • borgmatic_check_last:要检查的存档数量。默认值为 3

  • borgmatic_checks:一致性检查列表。默认进行每月检查。有关所有选项,请参见 文档

  • borgmatic_config_name:用于 Borgmatic 配置文件的名称。默认值为 config.yaml

  • borgmatic_timer_hour:定期创建和修剪 cron/systemd 定时任务执行的小时。默认值为 {{ 6 | random }}

  • borgmatic_timer_minute:定期创建和修剪 cron/systemd 定时任务执行的分钟。默认值为 {{ 59 | random }}

  • borgmatic_hooks:监视备份的钩子,例如使用 Healthchecks。有关更多信息,请参见 官方文档

  • borgmatic_timer:如果设置了该变量,则安装一个定时器。必须在 cronsystemd 之间做出选择。

  • borgmatic_relocated_repo_access_is_ok:绕过关于已移动存储库的 Borg 错误。默认值为 false

  • borgmatic_store_atime:将 atime 存储到归档中。默认值为 true

  • borgmatic_store_ctime:将 ctime 存储到归档中。默认值为 true

  • borgmatic_version:强制安装特定的 borgmatic 版本。

  • borg_user:创建备份的用户名称(服务帐户)。

  • borg_group:创建备份的组名称(服务帐户)。

贡献

欢迎提出 pull requests(PR),只要它们为有意义数量的用户添加相关功能。所有 PR 都会测试样式和功能。要在本地运行测试(需要 Docker):

$ pip install -r requirements-dev.txt
$ molecule test

许可证

MIT/BSD

作者

© 2018-2023 Manuel Riel 和贡献者。

关于项目

Set up backup to remote machine using Borg and Borgmatic.

安装
ansible-galaxy install borgbase.ansible_role_borgbackup
许可证
mit
下载
34.4k
拥有者
Simple and Secure Offsite Backups