borgbackup

Роль резервного копирования Borg

Это форк https://github.com/FiaasCo/borgbackup, который изначально был написан Люком Стробантом и Дитером Вергелстом. Этот форк поддерживается компанией Tag1 Consulting, Inc.

Эта роль устанавливает резервное копирование Borg на серверах и клиентах borgbackup. В роли есть обертка-скрипт 'borg-backup', что упрощает использование на клиентской стороне. Поддерживаемые опции включают borg-backup info | init | list | backup | mount. Automysqlbackup будет выполнен как предшествующая команда резервного копирования, если он установлен. Роль поддерживает как самофинансируемое, так и удаленное хранилище резервных копий, такие как rsync.net и storage box от Hetzner в качестве сервера Borg.

Есть возможность настроить репозитории только для добавления, чтобы защитить резервные копии от удаления с клиента.

Для работы этой роли необходим Ansible версии 2.4 или выше.

Ansible Galaxy

Эта роль доступна как tag1consulting.borgbackup на Ansible Galaxy. Чтобы использовать это в плейбуке, добавьте следующее в ваш файл requirements.txt:

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

Требуемые переменные

Определите группу borgbackup_servers в вашем инвентаре с одним или несколькими хостами. Группа borgbackup_management необходима только в случае, если вы хотите включить режим только для добавления и обрезать резервные копии с защищенных хостов.

[borgbackup_servers]
backup1.fiaas.co

[borgbackup_management]
supersecurehost

Определите переменные group- или hostvars для ваших конечных точек резервного копирования и хранения:

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

По умолчанию роль создает cronjob в /etc/cron.d/borg-backup, который выполняется от имени root каждый день в случайный час между 0 и 5 утра и в случайную минуту. При необходимости переопределите значения по умолчанию:

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. Только управляющая станция будет иметь разрешение на удаление старых резервных копий для (всех) клиентов. Это создаст сервер с ключевыми параметрами ssh по умолчанию --append-only. Если вы установите borgbackup_appendonly_repoconfig в True, это также отключит возможность удаления резервных копий с управляющей станции. (Или, по крайней мере: это невозможно удалить, пока вы не перенастроите репозиторий, и это в настоящее время не поддерживается в скрипте prune). Обратите внимание на ограничения режима только для добавления: обрезанные резервные копии кажутся удаленными, но они просто удалены из журнала транзакций, пока что-то не запишет в нормальном режиме в репозиторий)

Убедитесь, что проверили заданные по умолчанию параметры для этой роли, которые содержат список стандартных мест, подлежащих резервному копированию в backup_include. Переопределите это в вашем инвентаре, где это необходимо.

Установка Borg из пакета EPEL

Borg можно установить из пакета EPEL, установив переменную:

borgbackup_install_from_pkg: true

Репозиторий EPEL должен быть доступен для успешной установки. Чтобы установить репозиторий EPEL с помощью роли geerlingguy.repo-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/ansible-role-borgbackup
Лицензия
mit
Загрузки
1996
Владелец