borgbase.ansible_role_borgbackup
Ansible Роль: BorgBackup Клиент
Настройка зашифрованных, сжатых и дедуплицированных резервных копий с использованием BorgBackup и Borgmatic. В настоящее время поддерживает Debian/Ubuntu, CentOS/Red Hat/Fedora, Archlinux и Manjaro.
Отлично работает с BorgBase.com - простым и безопасным хостингом для ваших Borg репозиториев. Для управления репозиториями BorgBase через Ansible также смотрите Коллекцию BorgBase от Энди Хокинса.
Основные функции
- Установить Borg и Borgmatic из PyPi или дистрибутивных пакетов
- Настроить конфигурацию Borgmatic
- Запланировать регулярные резервные копии с помощью Cron или таймера Systemd
Изменения
- Старые версии этой роли настраивали отдельную задачу Cron для создания и проверки резервных копий. С недавней версией Borgmatic эта функция теперь управляется в Borgmatic. В результате эта дополнительная задача Cron будет удалена из этой роли.
- Старые версии роли поддерживали только Cron для планирования. Если вы используете таймеры Systemd, обязательно сначала удалите задачу Cron в
/etc/cron.d/borgmatic
. Роль также предупредит вас, если вы попытаетесь использовать оба таймера.
Пример плейбука с root как пользователем резервного копирования и таймером Cron
- hosts: все
роли:
- роль: 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` - Запуск резервного копирования."
postgresql_databases:
- имя: users
hostname: database1.example.org
порт: 5433
Пример плейбука с пользователем службы и таймером Systemd
- hosts: все
роли:
- роль: 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
: При использованииborg_install_method: package
на дистрибуциях, основанных на RHEL, требуется репозиторий EPEL. Чтобы отключить проверку (например, при использовании пользовательского зеркала вместо пакетаepel-release
), установите это значение наfalse
. По умолчанию{{ ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora' }}
(т.е.true
на дистрибутивах Enterprise Linux).borg_lock_wait_time
: Максимальное время ожидания для получения блокировки репозитория/кэша в секундах. По умолчанию 5 секунд.borg_one_file_system
: Не пересекать границы файловых систем. По умолчаниюtrue
.borg_pip_packages
: Зависимые пакеты (pip) для установкиborg(backup)
иborgmatic
.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. Выбор:rsa
,dsa
,rsa1
,ecdsa
,ed25519
. По умолчанию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
: Если переменная установлена, устанавливается таймер. Необходимо выбрать междуcron
иsystemd
.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
: Имя группы для создания резервных копий (служебная учётная запись).
Участие
Запросы на изменение (PR) приветствуются, если они добавляют функции, которые актуальны для значительного числа пользователей. Все PR тестируются на стиль и функциональность. Чтобы запустить тесты локально (необходимо Docker):
$ pip install -r requirements-dev.txt
$ molecule test
Лицензия
MIT/BSD
Автор
© 2018-2023 Мануэль Риель и участники.
Set up backup to remote machine using Borg and Borgmatic.
ansible-galaxy install borgbase.ansible_role_borgbackup