🚀 Ansible Role: Restic – Автоматизированное резервное копирование
Этот проект содержит Ansible Role для установки и настройки Restic, мощного инструмента для резервного копирования с поддержкой дедупликации, инкрементальных бэкапов и множества бэкендов хранения данных.
🔗 Репозиторий: GitHub
📌 Что такое Restic и зачем он нужен?
Restic – это кроссплатформенное решение для резервного копирования, написанное на Go. Оно обеспечивает:
- 📂 Поддержку различных хранилищ (локальные, SFTP, S3, Azure, B2 и другие).
- 🔄 Инкрементальные бэкапы для минимизации занимаемого места.
- 🔒 Шифрование резервных копий.
- 🛠 Гибкость конфигурации, включая планировщики задач (cron/systemd).
Применение Restic:
✅ Резервное копирование серверных файлов и баз данных.
✅ Автоматизация создания снапшотов данных.
✅ Использование облачных сервисов для хранения бэкапов.
📂 Структура Playbook
- tasks/main.yml – Основные задачи установки и настройки Restic.
- templates/backup_script.sh.j2 – Шаблон скрипта для запуска бэкапов вручную.
- vars/main.yml – Глобальные переменные для настройки роли.
- handlers/main.yml – Обработчики событий Ansible (рестарт, обновление и т. д.).
🛠 Требования
Перед запуском Playbook убедитесь, что:
✔️ Ansible 2.9+ установлен на управляющем узле.
✔️ SSH-доступ к целевому серверу.
✔️ Linux-сервер с доступом в интернет.
✔️ bzip2 установлен на сервере (используется для сжатия данных).
🔧 Основные переменные роли
Вы можете настроить роль, изменяя следующие переменные:
vars:
restic_version: '0.15.1'
restic_download_path: '/opt/restic'
restic_install_path: '/usr/local/bin'
restic_script_dir: '/opt/restic'
restic_log_dir: '{{ restic_script_dir }}/log'
restic_repos:
local:
location: '/srv/restic-repo'
password: 'securepassword0'
init: true
restic_create_schedule: true
restic_schedule_type: 'systemd'
📌 Описание переменных:
restic_version
– Версия Restic для установки.restic_download_path
– Путь для загрузки бинарного файла Restic.restic_install_path
– Путь для установки исполняемого файла Restic.restic_repos
– Репозитории хранения бэкапов (локальные или удаленные).restic_create_schedule
– Включение автоматического расписания бэкапов.restic_schedule_type
– Использованиеcron
илиsystemd
для запуска бэкапов.
📦 Установка роли Ansible Galaxy
Перед выполнением Playbook установите роль:
ansible-galaxy install roles-ansible.restic
Если роль уже установлена, можно выполнить обновление:
ansible-galaxy install -g -f roles-ansible.restic
🚀 Запуск резервного копирования через Ansible
🔹 1. Клонирование репозитория
git clone https://github.com/Shipssv83/Ansible-Role-Restic.git
cd Ansible-Role-Restic
🔹 2. Запуск установки Restic
ansible-playbook -i inventory --user root --extra-vars "host=host_name" playbooks/install-restic.yml
📌 Что делает этот Playbook?
✅ Устанавливает Restic.
✅ Настраивает репозитории для хранения резервных копий.
✅ Готовит расписание для автоматического выполнения бэкапов.
🛠 Использование Restic для ручного резервного копирования
Вы можете запустить бэкап вручную, используя сгенерированные скрипты:
/path/to/backup/script/backup-example.sh
Чтобы отметить бэкап определенным тегом:
/path/to/backup/script/backup-example.sh --tag deployment
Для выполнения вручную через cron
:
CRON=true /path/to/backup/script/backup-example.sh
🎯 Заключение
Теперь ваш сервер защищен с помощью Restic, а бэкапы выполняются автоматически по расписанию. Вы можете хранить копии локально или в облаке, обеспечивая безопасность ваших данных.🚀