task(decommission): clean up windows-recovery-host post-Synology, phases A-D

Audited the local recovery host: services migrated to VDS, content left
behind. Reclaimed phases (non-elevated, done):
- docker image+builder prune: images 118->7.1GB, cache 65->0GB (~176GB
  logical; physical reclaim pending WSL vhdx compact)
- removed redundant local CMS-backend containers (minio/imgproxy/es)
- removed 21 empty husk stacks + leftover data dirs
- deleted snolla-recovery VBox VM (95GB) + C:\nas-recovery (~150GB)
- deleted C:\sites snolla archives + identity-manager
=> C: free 62GB -> 214GB

Elevated finale (E+F) scripted in finish-elevated.ps1 for the user to run:
stostayer.old repoint to mssql.kzntsv.site (with VDS orphaned-user fix),
smoke-gated; then snolla IIS site + content + local MSSQL teardown (~38GB).
Keeps IIS stostayer + stostayer.old per user.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-08 13:32:38 +03:00
parent 2811b5a180
commit e6e2479970
2 changed files with 134 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
# decommission-windows-recovery-host
## Goal
Прибраться на [[../entities/windows-recovery-host]] (DESKTOP-NSEF0UK) после Synology-аварии: сервисы поднимались здесь временно, теперь почти все уехали на VDS + бэкапы настроены, локальный контент остался. Освободить диск (было 62 ГБ free из 636 used). **Оставить только IIS-сайты stostayer (`stostayer` + `stostayer.old`).**
## User decisions (2026-06-08)
1. snolla rollback-артефакты (VM 95ГБ + OVA 42ГБ + vm-sites 11ГБ) — **снести всё сейчас, без архива** (RUVDS cutover стабилен с 05.06, win-acme самодостаточен).
2. `stostayer.old` (:8091, БД на локальном MSSQL) — **нужен → репойнт web.config на `mssql.kzntsv.site,1433`, локальный MSSQL снести**.
3. Bulk safe — **всё разом**.
## Plan / phases
- [x] **A. Docker images + build cache prune** — ✅ образы 118→7.1ГБ, build-cache 65→0ГБ (~176ГБ logical). + rm exited-мусор. ⚠ physical-reclaim на C: только после vhdx-compact (см. ниже).
- [x] **B. Redundant local CMS-backend контейнеры** — ✅ stop+rm `minio`/`imgproxy`/`imgproxy-nginx`/`elasticsearch`.
- [x] **C. Husk-стеки** — ✅ удалены 21 пустой `diskstation/*` + data-папки minio/es/imgproxy. Осталось в diskstation: `mssql`, `traefik`.
- [x] **D. snolla rollback** — ✅ VBox VM `snolla-recovery` (unregistervm --delete, 95ГБ) + `C:\nas-recovery` (~150ГБ, по содержимому: harness блокирует Remove-Item на root-C:-папке). **C: free 62→214ГБ.**
- [x] **C.bis sites archives** — ✅ удалены `C:\sites\snolla.tar.gz`, `snolla.zip`, `snolla-identity-manager`.
- [ ] **E+F. ELEVATED finale** — заскриптовано в `scripts/decommission-windows-recovery-host/finish-elevated.ps1`. Делает: orphan-fix `snolla@stostayer` на VDS (sa из pass) → репойнт stostayer.old web.config на `mssql.kzntsv.site` → рестарт пула + smoke :8091 (гейт: 5xx → STOP) → снос IIS-сайта `snolla` + `C:\sites\snolla` + dead traefik-routes → снос локального MSSQL (~30ГБ). **Блокер для non-elevated tool: нужен elevated shell + рабочий gpg/pass — это user-shell. Запускает user.**
### Verify-факт (2026-06-08)
БД `stostayer` НА VDS ЕСТЬ (все 5 уехали: MoreThenCms/StayerCalculator/StayerPrice/stostayer/TireService), логин `snolla` существует, но его user в `stostayer` **orphaned** → прямой репойнт даёт `Login failed`. Фикс = `ALTER USER snolla WITH LOGIN=snolla` (в скрипте, шаг F1).
### Follow-up
- **vhdx compact** (вернуть ~176ГБ docker-reclaim на C:): `wsl --shutdown` + `Optimize-VHD ...docker_data.vhdx`. Гасит markitdown-MCP/lightrag — делать вне активной agent-сессии.
- **mutable-dev-environment VM** (3ГБ) — leftover dev, не в scope ответов. Снести? — спросить.
- **local traefik** — после E больше ничего не обслуживает (stostayer :8090/:8091 — direct, не через traefik). Кандидат на полный снос. Низкий приоритет (~0ГБ).
- **lightrag-* + postgres контейнеры** — статус не подтверждён (локальный MCP vs leftover). Спросить user.
## Keep
- IIS `stostayer` (:8090, БД внешняя www.stostayer.ru) + `stostayer.old` (:8091, после репойнта на VDS).
- traefik (proxy-plane), markitdown-mcp (агент-инфра), `MoreThenCms` git-репо, SSH-ключи.
- **lightrag-* + postgres контейнеры** — НЕ трогать пока не подтверждён статус (локальный MCP-инстанс vs leftover). Open question.
## Notes
- Elevated-операции (IIS site remove, web.config в C:\sites, Restart-WebAppPool) — non-elevated tool не может; готовить команды для user или elevated shell.
- ⚠ Soak snolla формально до ~12.06 — user разрешил снести раньше (cutover стабилен).