borgbase.ansible_role_borgbackup

Ansible Роль: BorgBackup Клиент

Тест Ansible Galaxy

Настройка зашифрованных, сжатых и дедуплицированных резервных копий с использованием 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
Лицензия
mit
Загрузки
34.4k
Владелец
Simple and Secure Offsite Backups