backup

Ansible Роль: Резервное копирование

CI

Устанавливает и настраивает borgmatic и borg для автоматического резервного копирования файлов, а также баз данных MySQL и PostgreSQL.

Требования

Дополнительные требования:

  • Для автоматизации резервных копий необходимо установить cron.

  • Должна быть установленная MySQL или совместимая с ней база данных для резервного копирования баз данных MySQL. Аналогично для баз данных PostgreSQL.

Переменные роли

Доступные переменные перечислены ниже вместе с их значениями по умолчанию (см. defaults/main.yml):

Связанные с конфигурацией Borgmatic

backup_directories: []

Список директорий (или отдельных файлов) для резервного копирования.

backup_mysql_databases: []

Список баз данных MySQL для резервного копирования. Подробнее см. в borgmatic - хук дампа базы данных.

backup_postgresql_databases: []

Список баз данных PostgreSQL для резервного копирования. Подробнее см. в borgmatic - хук дампа базы данных.

backup_repositories: []

Список репозиториев borg, в которые следует производить резервное копирование. Их необходимо создать заранее с помощью borg init. Также см. документацию borg по URL репозиториев.

backup_location_options: {}
backup_storage_options: {}
backup_retention_options: {}
backup_consistency_options: {}
backup_hooks_options: {}

Эти переменные могут использоваться для предоставления дополнительной конфигурации для borgmatic, такой как пароль шифрования для репозитория borg или дополнительные/альтернативные скрипты/команды хуков. См. схему borgmatic для полного списка параметров конфигурации.

backup_hooks_globlist: hooks/*

Шаблоны glob, которые будут использоваться для поиска скриптов хуков на управляющей машине.

backup_hooks_directory: /etc/borgmatic/hooks

Директория, в которую будут скопированы любые скрипты хуков borgmatic, найденные по вышеуказанным шаблонам glob.

Общие параметры

backup_cron_jobs
  - schedule: "0 3 * * *"
#   action: create

Список временных спецификаций cron и действий для выполнения. Если действие не указано, borgmatic выполнит все действия, то есть очистку, создание и проверку (см. документацию borgmatic - настройка резервного копирования). Если оставлено пустым, crontab не будет настроен.

backup_cron_path: "{{ backup_borg_path | dirname }}:/usr/bin:/bin"

Значение $PATH, которое будет установлено в начале crontab.

backup_verbosity: 0

Уровень подробности, с которым будет запущен borgmatic. См. справочник по команде borgmatic.

backup_user: root

Пользователь, который будет выполнять резервное копирование и владеть различными связанными с резервным копированием файлами и директориями.

backup_group: root

Группа, которая будет владеть различными связанными с резервным копированием файлами и директориями.

backup_config_directory: /etc/borgmatic

Директория, в которую будет помещён файл конфигурации borgmatic.

backup_log_file: /var/log/borgmatic.log

Файл, в который будет записываться вывод borgmatic.

Установка

backup_borg_keyserver: hkps://keys.openpgp.org

GPG-ключевой сервер, с которого будет загружен публичный ключ borg.

backup_borg_gpg_fpr: 6D5BEF9ADD2075805747B70F9F88FB52FAF7B393

Отпечаток публичного ключа borg. См. документацию borg - безопасность.

backup_borg_url: https://github.com/borgbackup/borg/releases/download

URL, с которого будет загружен бинарный файл borg.

backup_borg_asset: borg-linux{{ ansible_architecture [-2:] }}

Имя бинарного файла borg для загрузки.

backup_borg_version: 1.1.17

Версия бинарного файла borg, которую нужно загрузить.

backup_borg_path: /usr/local/bin/borg

Путь, по которому будет установлен бинарный файл borg. Обратите внимание, что если этот файл уже существует, установка borg не будет предпринята.

backup_borgmatic_version: 1.5.20

Версия borgmatic, которую необходимо установить с помощью pip.

backup_borgmatic_venv: /etc/borgmatic/venv

Виртуальное окружение, в которое pip установит borgmatic. Оно будет создано, если его ещё нет.

Зависимости

Нет

Пример плейбука

- hosts: servers

  vars:
    backup_directories:
      - /etc/myapp
      - /var/myapp
    backup_repositories:
      - user@host1:server_backup1
      - user@host2:server_backup2
    backup_storage_options:
      encryption_passphrase: secretpassword
    backup_retention_options:
      keep_daily: 7
      keep_weekly: 4
    backup_cron_jobs:
      - schedule: "0 2 * * *"

  roles:
     - { role: newtonne.backup }

Лицензия

MIT

О проекте

Backup files, and MySQL and PostgreSQL databases using borg and borgmatic.

Установить
ansible-galaxy install newtonne/ansible-role-backup
Лицензия
mit
Загрузки
135
Владелец