Резервное копирование
Минимально необходимый бэкап GetOLT — это снапшот MySQL, каталог лицензии и файл /opt/getolt/.env. Раньше .env считался восстановимым при переустановке — теперь это не так: в нём лежит GETOLT_SECRET_KEY, которым шифруются и пароли источников обогащения, и учётные данные подключения к самим OLT (пароль, приватный SSH-ключ). При переустановке генерируется новый ключ — сохранённые пароли источников обогащения станут нерасшифровываемыми, а расшифровать пароли и ключи доступа ко всему парку OLT будет невозможно.
Что бэкапить
| Артефакт | Что внутри | Критичность |
|---|---|---|
Дамп БД getolt_db | OLT, ONU, история сигналов, конфиги, журнал | критично |
/opt/getolt/license/ | JWT-файл лицензии (привязан к host_id) | важно (без него экземпляр перерегистрируется как новый — отсчёт лицензии начинается заново) |
/opt/getolt/.env | пароли MySQL, admin-пароль, host_id, GETOLT_SECRET_KEY | критично — GETOLT_SECRET_KEY шифрует пароли источников обогащения и учётные данные подключения к OLT (пароль, приватный SSH-ключ); при потере ключа они не восстановимы, а доступ к парку OLT будет потерян |
/opt/getolt/docker-compose.yml | конфиг compose | минорно (скачивается заново при install.sh) |
Снапшот БД
# Узнать пароль root MySQL из .envMYSQL_ROOT_PASSWORD=$(grep '^MYSQL_ROOT_PASSWORD=' /opt/getolt/.env | cut -d= -f2-)
# Дамп с консистентным снимком (online, без блокировок)docker compose -f /opt/getolt/docker-compose.yml exec -T mysql \ mysqldump --single-transaction --routines --triggers \ -uroot -p"$MYSQL_ROOT_PASSWORD" getolt_db \ | gzip > /backup/getolt-$(date +%F).sql.gzРекомендуется крутить дампы ежедневно с retention 7–30 дней (через cron / systemd-timer на хосте).
Снимок лицензии
tar czf /backup/getolt-license-$(date +%F).tgz /opt/getolt/license/Меняется редко — снимать вместе с .env достаточно при каждом дампе БД.
Восстановление
На чистом VPS:
# 1. Установка (поднимется пустая БД, выдастся новый license.jwt — пере-перезапишем)curl -A "getolt-installer/1.0" -fsSL https://get.getolt.online/install.sh | sudo bash
# 2. Остановитьcd /opt/getolt && docker compose down
# 3. Положить .env, лицензию, разлить дамп БДcp /backup/.env /opt/getolt/.envtar xzf /backup/getolt-license-*.tgz -C /
# 4. Поднять только MySQL и разлить дампdocker compose up -d mysqlMYSQL_ROOT_PASSWORD=$(grep '^MYSQL_ROOT_PASSWORD=' /opt/getolt/.env | cut -d= -f2-)zcat /backup/getolt-*.sql.gz | \ docker compose exec -T mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" getolt_db
# 5. Запустить приложениеdocker compose up -dЕсли хост-машина другая (миграция на новый VPS) и host_id сменился — license-server при следующем heartbeat увидит mismatch и сообщит. Свяжитесь с support@getolt.online или в Telegram @getolt_pub — пере-выдадим JWT для нового host_id.
Что дальше
- Обновление версий — снимок перед обновлением — часть процедуры.
- Production-deploy — структура
/opt/getolt/.
Нашли ошибку или нужно что-то дополнить? Напишите нам или в Telegram @getolt_pub.
Разработка: gmasich.ru