backup
Ansible Роль: Резервное копирование
Устанавливает и настраивает 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