restic
Ansible Роль: restic
ВАЖНО - Проект архивирован
Проект архивирован из-за моего отсутствия интереса к его поддержке (я больше не использую его). Я с удовольствием разархивирую его, если кто-то заинтересован в его поддержке. Если вы такой человек, напишите мне на электронную почту paulfantom@gmail.com.
Описание
Разворачивает restic - быструю, безопасную и эффективную программу для резервного копирования.
Требования
- Ansible > 2.2
- установлен bzip2 на машине развертывания (той же, где установлен ansible)
Переменные роли
Все переменные, которые можно переопределить, хранятся в файле defaults/main.yml, а также в таблице ниже.
Имя | Значение по умолчанию | Описание |
---|---|---|
restic_version |
0.9.6 | версия пакета restic. Также принимает latest как параметр. |
restic_user |
"root" | системный пользователь для запуска restic |
restic_group |
"root" | системная группа для запуска restic |
restic_shell |
"/bin/false" | оболочка для пользователя restic, измените это, если хотите использовать su |
restic_install_path |
"/usr/local/bin" | директория, куда будет установлен бинарный файл restic |
restic_cron_mailto |
restic_user | кому отправлять результаты cron-задач restic, установите "" чтобы не отправлять |
restic_cron_stdout_file |
null | в какой файл записывать вывод restic, null означает включить в mailto, используйте /dev/null чтобы отбрасывать |
restic_cron_stderr_file |
null | в какой файл записывать ошибки restic, null означает включить в mailto, используйте /dev/null чтобы отбрасывать |
restic_sudo_command_whitelist |
[] | белый список команд, которые restic разрешено запускать с sudo |
restic_repos |
[] | конфигурация репозиториев restic и cron-задач. Подробнее в defaults/main.yml |
Безопасность
Для обеспечения высокой безопасности эта роль может позволить запускать restic от имени другого пользователя, кроме root, и при этом предоставлять только доступ для чтения к файлам. Это реализовано благодаря PR#1483 из репозитория restic.
Если вам нужно запускать определенные инструменты от имени другого пользователя, убедитесь, что они перечислены в restic_sudo_command_whitelist
следующим образом:
restic_sudo_command_whitelist:
- command: /usr/bin/some_backup_related_command_that_needs_sudo
runas: root
Затем в вашей фактической команде резервного копирования добавьте команду как sudo -u root /usr/bin/some_backup_related_command_that_needs_sudo
.
Помощники
Эта роль также устанавливает вспомогательные скрипты в restic_install_path
. Эти скрипты называются в честь вашего репозитория и обеспечивают корректность переменных окружения для этого репозитория.
Например, если у вас есть репозиторий restic с названием testrepo
, вы можете использовать команду restic-testrepo
, которая выполнит restic
с правильными переменными окружения для работы с этим репозиторием.
Пример
Плейбук
Используйте его в плейбуке следующим образом:
- hosts: all
roles:
- paulfantom.restic
Локальное тестирование
Предпочтительный способ локального тестирования роли - использование Docker и molecule (v2.x). Вам нужно будет установить Docker на вашу систему. Посмотрите, как начать использовать пакет Docker, подходящий для вашей системы. Все необходимые пакеты можно указать в одной строке:
pip install ansible 'ansible-lint>=3.4.15' 'molecule>2.13.0' docker 'testinfra>=1.7.0' jmespath
Это должно быть похоже на то, что указано в файле .travis.yml
в разделе install
.
После установки тестового набора вы можете запустить тест, выполнив
molecule test --all
Для получения более подробной информации о molecule перейдите в их документацию.
Travis CI
Сочетание molecule и travis CI позволяет тестировать, как новые PR будут работать с несколькими версиями ansible и несколькими операционными системами. Это также позволяет создавать тестовые сценарии для различных конфигураций ролей. В результате матрица тестов довольно большая и требуется больше времени, чем локальное тестирование, поэтому, пожалуйста, наберитесь терпения.
Участие в проекте
Смотрите руководство для участников.
Лицензия
Этот проект лицензирован по лицензии MIT. Смотрите LICENSE для получения более подробной информации.
Fast, secure, efficient backup program
ansible-galaxy install paulfantom/ansible-restic