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