Status: done (false) -> paused (true). Миграция была сделана, сломала prod (Docker port-loop), откатили. Артефакты на хосте остались inert для следующей попытки. - STATUS: 🟢 done -> 🟡 paused с детальным where-I-stopped - iis-on-host-migration: Phase 9 rollback задокументирован, что НЕ делать в следующей попытке (cross-ref на post-mortem) - NEXT-SESSION-PROMPT: переписан для retry-сценария — обязательное чтение post-mortem перед началом, recipe из 5 пунктов Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
58 lines
4.5 KiB
Markdown
58 lines
4.5 KiB
Markdown
# Prompt для следующей сессии
|
||
|
||
Скопируй этот блок и вставь как первое сообщение:
|
||
|
||
---
|
||
|
||
Привет! Возвращаемся к **iis-on-host-migration**. **Перед началом обязательно прочти**:
|
||
1. `.wiki/concepts/iis-migration-2026-05-19-postmortem.md` — почему предыдущая попытка сломала prod
|
||
2. `.wiki/sources/iis-host-migration-2026-05-19.md` (Phase 9 в конце — про rollback)
|
||
3. `.wiki/concepts/recovery-architecture-snapshot.md` (актуальный VM-chain)
|
||
|
||
**Кратко где мы сейчас (после rollback):**
|
||
- Prod снова через VM `snolla-recovery` (как было до session 2026-05-19). 11 main routes + 2 stayer routes в traefik → `host.docker.internal:18080/18180/18181` → VM IIS.
|
||
- На хосте есть **inert** артефакты предыдущей попытки миграции — НЕ удалять без явного решения:
|
||
- `C:\sites\{snolla, stostayer, stostayer.old, snolla-identity-manager}` — Web.config'и уже patched (sitePath, conn-strings).
|
||
- IIS sites/pools `snolla, stostayer, stostayer.old` готовы (.NET v4.0 Integrated, ApplicationPoolIdentity, ACL).
|
||
- Traefik backup-stamps `*.bak-phase3-2026-05-19`, `*.bak-stayer-switch-2026-05-19`, `*.bak-hostip-2026-05-19`.
|
||
|
||
**Цель повторной попытки** — выполнить миграцию по recipe из post-mortem, без повторения 10 ошибок:
|
||
|
||
1. **Backend port — НЕ :80.** Использовать `:18080` на хосте (старый VM NAT port forward, теперь свободен после `unregistervm` или после остановки VM). Или другой свободный (НЕ совпадающий с traefik publish-ports `:8000, :4443, :8080`). Это избегает Docker NAT loop.
|
||
2. **Smoke test с `-MaximumRedirection 0` / `--max-redirs 0`** + read first response. Если `Location` == request URL или близко → loop, fail fast.
|
||
3. **Тест из НЕ-LAN сети** (телефон через мобильный интернет, VPS curl) до commit'a — не доверять local smoke.
|
||
4. **Параллельный run VM x 24h+** — НЕ savestate'ить VM на следующий же день. Держать как hot fallback хотя бы сутки реального трафика.
|
||
5. **Atomic revert plan ДО старта** — backup всех traefik yml, написать "если что — paste this" revert-команду заранее.
|
||
|
||
**Не делай без моего "да":**
|
||
- Любые traefik patches (меняет prod-трафик).
|
||
- Любые destructive операции на `C:\sites\`, `C:\nas-recovery\vm-sites\`, snolla.ova.
|
||
- Глушить VM до подтверждённой 24h+ стабильности host'а.
|
||
- Push в git (gitea пока на мёртвой синке, и autopush не разрешён в любом случае).
|
||
|
||
**Контекстные пароли** (в Web.config / .env, не в чате):
|
||
- MSSQL SA: `C:\Users\vitya\projects\docker\diskstation\mssql\.env`
|
||
- snolla CMS conn: user `snolla`, password в `C:\sites\snolla\Web.config` (`fXkH4@8O%3pc`)
|
||
- stostayer (новый): user `stayer_site`, password в `C:\sites\stostayer\Web.config` (`^I9D)LB)DK)8J#xBDG$t}W&_ioaT!M!LF`, XML-escape!)
|
||
- VM SSH: `~/.ssh/id_ed25519_snolla_vm` → `vitya@127.0.0.1:8022` (NAT-forward)
|
||
- VM admin password: `Pryakhin9`
|
||
|
||
Поехали — но **сначала прочти post-mortem полностью**.
|
||
|
||
---
|
||
|
||
## Что почитать AI-агенту перед началом (для самопроверки контекста)
|
||
|
||
- `.wiki/overview.md` — точки входа
|
||
- **`.wiki/concepts/iis-migration-2026-05-19-postmortem.md`** ← critical (10 ошибок + recipe)
|
||
- `.wiki/sources/iis-host-migration-2026-05-19.md` (включая Phase 9 в конце)
|
||
- `.wiki/sources/nas-recovery-session-2026-05-18.md` — почему вообще этот хост
|
||
- `.wiki/concepts/recovery-architecture-snapshot.md` — актуальный VM-chain
|
||
- `.wiki/entities/snolla-recovery-vm.md` — VM active prod
|
||
- `.wiki/entities/windows-recovery-host.md` — host inert artifacts
|
||
- `.wiki/concepts/cms-config-rewrite-pattern.md` — UTF-8 BOM
|
||
- `.wiki/concepts/webconfig-password-xml-escape.md` — `&` → `&` в conn-string
|
||
- `.tasks/STATUS.md`
|
||
- `.tasks/iis-on-host-migration.md` — Phase 1-9 история
|
||
- Это сообщение
|