backup-tool-app
Примечание
Доступно только в Enterprise версии.
Назначение:
Образ для создания бекапов.
Создан на базе решения Backup 4.4.1. Документация находится тут
Выключен по умолчанию.
Исходники находятся в репозитории https://gitlab.citeck.ru/citeck-projects/citeck-devops
Теги:
Актуальная версия nexus.citeck.ru/backup-tool 0.0.3 UPD: По сравнению с предыдущей версией ( 0.0.2 ) поправлены СА серты R3 и актуализированы версии вспомогательных утилит.
Шаблон сервиса docker-compose:
services:
app:
logging:
options:
max-size: "10m"
max-file: "5"
hostname: backup-tool-app
restart: always
stop_grace_period: 1m
image: nexus.citeck.ru/backup-tool:0.0.2
env_file:
- ./environments/backup-tool-app.env
volumes:
{% if (BackupToolApp.environments.backup.contentstore)and(EcosApp.enabled) %}
- {{ EcosProjectDataDir }}ecos-app/:/content/
{% endif %}
{% if (BackupToolApp.environments.backup.index) and (EcosSearchApp.enabled) %}
- {{ EcosProjectDataDir }}ecos-search-app/:/index/
{% endif %}
{% if BackupToolApp.environments.export.local.enabled %}
- {{ EcosProjectDataDir }}backups/:/backups/
{% endif %}
networks:
- app_network
Используемые переменные:
Пример ожидаемых переменных в backup-tool-app.env
с значениями по умолчанию:
BACKUP_SHEDULE=”0 0 * * *”
BACKUP_DEBUG_CONFIG=false
BACKUP_INSTANCE_ID=local.dev
BACKUP_CONTENTSTORE=false
BACKUP_INDEX=false
BACKUP_POSTGRESQL_APP_1=false
BACKUP_POSTGRESQL_APP_1_HOST=ecos-postgresql-app
BACKUP_POSTGRESQL_APP_1_PORT=5432
BACKUP_POSTGRESQL_APP_1_USERNAME=user
BACKUP_POSTGRESQL_APP_1_PASSWORD=password
BACKUP_POSTGRESQL_APP_2=false
BACKUP_POSTGRESQL_APP_2_HOST=ecos-microservices-postgresql-app
BACKUP_POSTGRESQL_APP_2_PORT=5432
BACKUP_POSTGRESQL_APP_2_USERNAME=user
BACKUP_POSTGRESQL_APP_2_PASSWORD=password
BACKUP_MONGODB_APP_1=false
BACKUP_MONGODB_APP_1_HOST=mongodb-app
BACKUP_MONGODB_APP_1_PORT=27017
BACKUP_MONGODB_APP_1_USERNAME=user
BACKUP_MONGODB_APP_1_PASSWORD=password
BACKUP_MYSQL_APP_1=false
BACKUP_MYSQL_APP_1_HOST=mysql-app
BACKUP_MYSQL_APP_1_PORT=3306
BACKUP_MYSQL_APP_1_USERNAME=user
BACKUP_MYSQL_APP_1_PASSWORD=password
BACKUP_LOCAL_EXPORT=false
BACKUP_LOCAL_EXPORT_KEEP=7
BACKUP_S3_EXPORT=false
BACKUP_S3_EXPORT_USE_FOG_OPTIONS=true
BACKUP_S3_EXPORT_ENDPOINT=s3.citeck.ru
BACKUP_S3_EXPORT_REGION=
BACKUP_S3_EXPORT_KEY=changemeplease
BACKUP_S3_EXPORT_SECRET=changemeplease
BACKUP_S3_EXPORT_BUCKET=bucket
BACKUP_S3_EXPORT_KEEP=7
BACKUP_MATTERMOST_NOTIFICATIONS=false
BACKUP_MATTERMOST_NOTIFICATIONS_WEBHOOK=changemeplease
BACKUP_MATTERMOST_NOTIFICATIONS_CHANNEL=channel
BACKUP_POSTGRESQL_APP_*
BACKUP_MONGODB_APP_*
BACKUP_MYSQL_APP_*
Отвечают за авторизацию в субд. При использовании шаблонизатора docker-compose значения полей подставляются автоматически. Эти параметры в большинстве случаев нет необходимости предопределять.
BACKUP_SHEDULE - Как часто необходимо делать бекапы. Задается в формате cron. По умолчанию ежедневно в 00:00. p.s. вот удобный калькулятор
BACKUP_DEBUG_CONFIG - Возвращает список переменных и сконфигурированый backup_plan.rb.
BACKUP_INSTANCE_ID - Имя инстанса. Используется для оповещений в mattermost и для экспорта в S3.
BACKUP_CONTENTSTORE - Включает бекапы для
ecos-app
contentstore
.BACKUP_INDEX - Включает бекапы для
ecos-search-app
index
.BACKUP_LOCAL_EXPORT - Включает хранение бекапов на сервере, в директории
backups/
.BACKUP_LOCAL_EXPORT_KEEP - Сколько дней хранить бекапы в директории
backups/
. Зависит о частоты выполнения бекап плана.BACKUP_S3_EXPORT - Включает экспорт бекапов в S3 хранилище.
BACKUP_S3_EXPORT_USE_FOG_OPTIONS - Переключатель необходимый для использования в S3-like хранилищах, например в DigitalOcean’s Spaces или Minio. Использует в качестве хоста переменную BACKUP_S3_EXPORT_ENDPOINT. Более подробно в документации
BACKUP_S3_EXPORT_ENDPOINT - Адрес S3-like сервера. Зависит от значения
true
переменной BACKUP_S3_EXPORT_USE_FOG_OPTIONS.BACKUP_S3_EXPORT_REGION - Регион для amazon S3.
BACKUP_S3_EXPORT_KEY - S3 ключ авторизации.
BACKUP_S3_EXPORT_SECRET - S3 сикрет авторизации.
BACKUP_S3_EXPORT_BUCKET - Ведерко, куда складывать бекапы в S3.
BACKUP_S3_EXPORT_KEEP - Сколько дней хранить бекапы в S3 хранилище. Зависит о частоты выполнения бекап плана.
BACKUP_MATTERMOST_NOTIFICATIONS - Включает отправку уведомлений в mattermost / slack.
BACKUP_MATTERMOST_NOTIFICATIONS_WEBHOOK - Полный адрес webhook, куда нужно отправлять уведомления. Например.
BACKUP_MATTERMOST_NOTIFICATIONS_CHANNEL - Канал в mattermost / slack для уведомлений.
Типовой вывод принятых настроек в лог контейнера:
17:27:10.INFO ==> ** Starting Backup plan setup **
17:27:10.INFO ==> ** Export to s3 storage disabled **
17:27:10.INFO ==> ** Export to local storage disabled **
17:27:10.INFO ==> ** Disabled mattermost notification **
17:27:11.INFO ==> ** Generation of the configuration file /opt/backup/backup_plan.rb completed successfully **
17:27:11.INFO ==> ** Configuration check completed successfully **
17:27:11.INFO ==> ** Backup plan setup finished! **
17:27:11.INFO ==> ** Сonfiguring the scheduler **
17:27:11.INFO ==> ** Schedule applied: 0 0 * * * **