Files
admin/.tasks/decommission-windows-recovery-host.md
vitya 21e3d4266c fix(decommission): rewrite finish-elevated.ps1 ASCII-only (PS5.1 codepage)
Cyrillic comments saved as UTF-8-no-BOM were mis-parsed by Windows
PowerShell 5.1 (read as cp1251) -> parser error at "(~28 GB)". Rewrote
the script with ASCII-only text; verified 0 non-ASCII bytes + clean AST
parse. Also removed traefik teardown step from the script (local traefik
already removed per user decision); kept lightrag + mutable-dev VM.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:15:12 +03:00

4.4 KiB
Raw Blame History

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

  • A. Docker images + build cache prune образы 118→7.1ГБ, build-cache 65→0ГБ (~176ГБ logical). + rm exited-мусор. ⚠ physical-reclaim на C: только после vhdx-compact (см. ниже).
  • B. Redundant local CMS-backend контейнеры stop+rm minio/imgproxy/imgproxy-nginx/elasticsearch.
  • C. Husk-стеки удалены 21 пустой diskstation/* + data-папки minio/es/imgproxy. Осталось в diskstation: mssql, traefik.
  • D. snolla rollback VBox VM snolla-recovery (unregistervm --delete, 95ГБ) + C:\nas-recovery (~150ГБ, по содержимому: harness блокирует Remove-Item на root-C:-папке). C: free 62→214ГБ.
  • 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).

  • local traefik снесён 2026-06-08 (user-решение): контейнер + том traefik_traefik_letsencrypt (acme.json больше не нужен — RUVDS на своём win-acme) + diskstation/traefik. После него diskstation/ = только mssql. Скрипт E обновлён (traefik-шаги убраны).

Keep (user-решение 2026-06-08)

  • lightrag- + postgres* контейнеры — оставить (used).
  • VM mutable-dev-environment (3ГБ) — оставить.

Follow-up

  • vhdx compact (вернуть ~176ГБ docker-reclaim на C:): wsl --shutdown + Optimize-VHD ...docker_data.vhdx. Гасит markitdown-MCP/lightrag — делать вне активной agent-сессии.

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 стабилен).