Files
minecraft-lab/docs/rollback.md
T
2026-10-04 00:30:09 +07:00

48 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Rollback — Phase 8
Команды работают по SSH с root из `platform/config.yaml`. При необходимости
передайте `--ssh-config FILE` и `--remote-node /absolute/path/to/node`.
```bash
./mcpack rollback
./mcpack rollback-pack 0.0.4
```
Без подтверждения это только чтение: active/previous, actual binding, состояния
операций и список snapshots с временем и исходным релизом. Нет загрузки agent,
блокировки, остановки сервера или сборки. Список не заменяет проверку snapshot.
```bash
./mcpack rollback-pack 0.0.4 --confirm-compatible
./mcpack rollback --backup SNAPSHOT_ID --accept-progress-loss
```
Первый режим запускает сохранённый полный релиз с текущим миром. Оператор
подтверждает совместимость модов и мира; SemVer её не доказывает. Ручные изменения
managed configs блокируют перезапись, если target не содержит ровно эти изменения.
Второй режим восстанавливает весь runtime и исходный релиз snapshot. Прогресс
после указанного времени исчезает из активного runtime, включая данные модов.
Архив, inventory и release проверяются до остановки; распаковка происходит в
отдельном каталоге. Текущий runtime переносится в `retired-runtimes/UUID/runtime`,
а не удаляется. Дополнительно перед обоими режимами создаётся проверенный backup
текущего состояния при остановленном сервере под общей блокировкой.
`.env` и секреты сохраняются. Явный `MC_BIND_ADDRESS` действует и для старого
Compose через временный port overlay; immutable release не переписывается.
Pointers обновляются только после успешного startup/health. Состояние записывается
в `rollback-state.json`, предыдущий deployment — в `operation-history/`.
После неудачного deploy snapshot recovery определяет применённый релиз по binding,
даже если active ещё указывает на предыдущий. Pack-only в таком состоянии запрещён.
При ошибке rollback сервер останавливается; автоматического запуска старой сборки
на изменённом мире нет. Незавершённый rollback блокирует следующие операции.
Для ручного восстановления после ошибки сначала изучите state, binding,
diagnostics и оба pointers. Сохраните current backup, retired runtime и staged
restore. Восстановите проверенный snapshot в отдельный root по [backups.md](backups.md),
с host settings этого сервера; удалите остановленный старый контейнер и проверьте
source release и health восстановленной копии. Завершать failed state можно лишь
после сверки фактического binding и pointers; удаление state само по себе не recovery.
Backups и retired runtime автоматически не очищаются.