autorestic
Установщик Autorestic/Restic
Роль Ansible для установки и настройки restic и autorestic. Вдохновение/основа для этой роли пришла от @IronicBadger и также от @ItsNotGoodName за улучшения в установщике/копировании конфигурации.
Установите с помощью ansible-galaxy install fuzzymistborn.autorestic
Возможности
- Установка и настройка двоичных файлов
restic
иautorestic
. - Копирование/обновление файла конфигурации
autorestic
. - Обновление двоичных файлов, если доступно обновление и версия не зафиксирована.
Настройка
Эта роль имеет ряд переменных, которые можно настраивать.
Кроме того, вы можете зафиксировать конкретную версию любого из двоичных файлов с помощью autorestic_pinned_ver
или restic_pinned_ver
. По умолчанию роль загружает и устанавливает последнюю доступную версию и будет выполнять команду обновления, если двоичный файл уже присутствует, каждый раз, когда роль запускается. Вы можете отключить это, зафиксировав конкретную версию. Вот пример, если вы хотите установить версию.
autorestic_download_latest_ver: false
autorestic_pinned_ver: 1.2.0
restic_download_latest_ver: false
restic_pinned_ver: 0.12.1
Устанавливая зафиксированную версию, команды обновления не будут выполняться, и версия будет загружена только если установленная версия не соответствует зафиксированной версии.
Другие переменные, которые можно изменить:
autorestic_config_user: root
autorestic_config_yaml: CHANGEME # конфигурация autorestic в yaml
autorestic_config_path: "{{ autorestic_user_directory }}/.autorestic.yml"
autorestic_config_mode: 0600
autorestic_config_owner: "{{ autorestic_config_user }}"
autorestic_config_group: "{{ autorestic_config_user }}"
autorestic_distro: linux_amd64
restic_distro: linux_amd64
Другие переменные, такие как restic_gh_url
, restic_install_directory
и т.д., я не рекомендую изменять, если вы не хотите настроить установку.
Смотрите страницы релизов для autorestic и restic, чтобы найти правильную дистрибуцию для вашей установки.
Пример файла конфигурации Autorestic
Конфигурация Autorestic по умолчанию копируется в домашний каталог пользователя root. Это можно изменить на домашний каталог другого пользователя с помощью переменной autorestic_config_user
.
Ниже приведен пример, который показывает все доступные опции.
autorestic_config_yaml:
locations:
docker:
from: '/opt/docker'
to:
- local
- b2_docker
backends:
local:
type: local
path: /backup
key: 123
b2_docker:
type: s3
path: 'b2_backend_url'
key: b2_password
env:
AWS_ACCESS_KEY_ID: 1234
AWS_SECRET_ACCESS_KEY: 1234abc
Для дополнительной документации, пожалуйста, ознакомьтесь с официальными документами.
API Github
Эта роль использует API GitHub для определения последнего доступного релиза. По умолчанию роль использует неавторизованные запросы, которые ограничены GitHub до 60 запросов в час. Запросы связаны с исходным IP-адресом. Для большинства случаев это не проблема. Однако вы можете столкнуться с ограничением по количеству запросов. При авторизации вы можете делать 5000 запросов в час.
Чтобы авторизоваться, вам нужно получить Личный токен доступа. Токен не требует выбора каких-либо областей. Затем добавьте следующие переменные:
github_api_user: fuzzymistborn
github_api_pass: YOUR_TOKEN
github_api_auth: yes
Вот и все!
Запланированные задачи
Добавить переменные cronjob (?) для базовых задач (резервное копирование, забыть и т.д).- Не думаю, что реализую. Слишком персонализировано и слишком много разнообразия в реализации. Буду продолжать думать, как это сделать.
Найти способ зафиксировать restic даже при обновлении autorestic.
Если вам нравится моя работа, пожалуйста, рассмотрите возможность угостить меня пивом (или кофе, или чем-то другим)
ansible-galaxy install FuzzyMistborn/ansible-role-autorestic