restic

логотип restic

Ansible Роль: restic

Статус сборки Лицензия Ansible Роль Тег GitHub

ВАЖНО - Проект архивирован

Проект архивирован из-за моего отсутствия интереса к его поддержке (я больше не использую его). Я с удовольствием разархивирую его, если кто-то заинтересован в его поддержке. Если вы такой человек, напишите мне на электронную почту 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
Лицензия
mit
Загрузки
50994
Владелец
SRE / SWE specializing in observability. tea addict :tea: