Files
admin/snolla-recovery-vm.md
vitya 117376656d docs(.wiki): ingest iis-host-migration 2026-05-19 session
New source page documenting migration of MoreThenCms.Web from
snolla-recovery VM to native host IIS. Updates:
- recovery-architecture-snapshot: new chain (traefik -> host:80) +
  secondary chain for stostayer still on VM
- snolla-recovery-vm: demoted, IdentityManager port fix (8089 not 80),
  sub-apps detailed
- windows-recovery-host: 3 native IIS sites + C:\sites\, C:\stayer\
- log.md: ingest + decision entries

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 12:51:35 +03:00

87 lines
7.1 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.
---
title: Snolla Recovery VM (VirtualBox)
type: entity
tags: [vm, virtualbox, windows, iis, cms, recovery, demoted]
sources: [../sources/nas-recovery-session-2026-05-18.md, ../sources/iis-host-migration-2026-05-19.md]
updated: 2026-05-19
---
# Snolla Recovery VM
VirtualBox-VM на [[windows-recovery-host]], в которой работала CMS-стек (IIS + .NET + код CMS). Импортирован из OVA-снапшота 2024-10-27, который лежал в Hyper Backup репо.
**Статус с 2026-05-19 (после [[iis-host-migration-2026-05-19]]):** VM **демоут** — больше не обслуживает основной CMS-трафик. 11 главных клиентских доменов идут через traefik на нативный IIS хоста (`MoreThenCms.Web` на `C:\sites\MoreThenCms.Web`). VM продолжает обслуживать только `stostayer` и `stostayer.old` через port forwards `18180/18181`. Полное выключение — после миграции stayer-сайтов или явного решения их не мигрировать.
## Параметры
- **VBox name:** `snolla-recovery`
- **UUID:** `66aac8bb-fe70-4ced-87f6-2291cd0e8b74`
- **Расположение:** `C:\Users\vitya\VirtualBox VMs\snolla-recovery\`
- **OS внутри:** Windows (вероятно Server 2016/2019, hostname `SNOLLA`)
- **RAM:** 4096 MB
- **vCPU:** 2 (после оптимизации [[vbox-windows-stability-tuning]] — было 4)
- **Disk:** `snolla-disk1.vmdk`, max 120 GB, реально ~92 GB на хосте
- **Storage controller:** SATA AHCI (после миграции с SCSI LsiLogic, см. [[vbox-windows-stability-tuning]])
- **Network:** NAT (после миграции с bridged WiFi из-за нестабильности)
- **Paravirt:** `kvm` (matching исходному гипервизору Synology VMM)
- **OS type:** Windows10_64 (исходно был `Other_64`, поправили для оптимальных дефолтов)
- **Guest Additions:** 7.2.8 r173730, RunLevel=3 (полностью активны)
## NAT Port Forwards
| Host port | VM port | Назначение |
|---|---|---|
| 13389 | (console) | **VRDE** (VBox Remote Display) — для отладки, не зависит от Windows RDP |
| 23389 | 3389 | RDP внутри VM (Windows Remote Desktop) |
| 8022 | 22 | SSH (OpenSSH Server в VM) |
| 18080 | 80 | IIS Default — основной HTTP CMS |
| 18180 | 8080 | IIS site `stostayer` |
| 18181 | 8081 | IIS site `stostayer.old` |
| 18189 | 8089 | (запасной) |
## Учётка
- **Admin:** vitya (домен SNOLLA)
- **Default shell для sshd:** PowerShell (зарегистрирован в `HKLM:\SOFTWARE\OpenSSH``DefaultShell`)
- **Authorized SSH key для admin-users:** `C:\ProgramData\ssh\administrators_authorized_keys` (особое место для admin Windows OpenSSH; permissions через `icacls`, group `Администраторы:F` + `СИСТЕМА:F`)
## IIS-сайты
| Site | Path | Bindings | Прим. |
|---|---|---|---|
| **MoreThenCms.Web** | `C:\inetpub\wwwroot\MoreThenCms.Web` | `*:80` | **с 2026-05-19 не получает prod-трафика** (traefik переключён на хост) |
| **Snolla.IdentityManager** | `C:\inetpub\wwwroot\Snolla.IdentityManager` | `*:8089` | публично не используется, в host-миграцию не вошёл |
| **stostayer** | `C:\stayer\MoreThenCms.Web` | `*:8080` | **до сих пор обслуживает prod** через traefik backend `host.docker.internal:18180` |
| **stostayer.old** | `C:\stayer\stostayer.old` | `*:8081` | **до сих пор обслуживает prod** через `host.docker.internal:18181` |
| **stostayer.old/calc** | `C:\stayer\Mis.StoStayer.Calculator.Web` | (sub-app под `:8081`) | отдельный app pool `calc` |
| **stostayer.old/price** | `C:\stayer\Mis.StoStayer.Price.Api` | (sub-app под `:8081`) | отдельный app pool `price` |
| **stostayer.old/price/tireService** | `C:\stayer\Mis.StoStayer.TireService.Api` | (sub-app под `:8081`) | отдельный app pool `tireService` |
CMS распознаёт клиента по **Host header** — 11 клиентских доменов исходно роутились внутри `MoreThenCms.Web` на `:80`. После [[iis-host-migration-2026-05-19]] этот сайт зеркалирован на хост в `C:\sites\MoreThenCms.Web` и получает весь prod-трафик там.
## Web.config — критичные настройки (после recovery patch)
- **Connection string:** `Data Source=10.0.2.2;Initial Catalog=MoreThenCms;User Id=snolla;Password=fXkH4@8O%3pc;...`
- `10.0.2.2` = NAT gateway в VBox = адрес хоста [[windows-recovery-host]] изнутри VM
- До патча было `Data Source=192.168.1.10` (старая мёртвая синка)
- Тот же пароль `fXkH4@8O%3pc` совпадает с SA-паролем MSSQL контейнера (production password из старого compose)
- **Encoding файла:** UTF-8 with BOM (важно — см. [[cms-config-rewrite-pattern]])
- 4 файла пропатчены аналогично: `MoreThenCms.Web/Web.config`, `Snolla.IdentityManager/Web.config`, `stostayer.old/web.config`, и stayer-проектов (если применимо)
## Связь со внешним миром
- VM в NAT-режиме → не имеет LAN-IP
- Из traefik (на хосте) достижима по `host.docker.internal:18080` → NAT-форвард в Windows → VM:80
- Раньше (когда было bridged) — VM имела IP `192.168.1.15` с MAC `02:11:32:2A:7C:B9`. snolla.yml в traefik/data/custom/ исходно ссылался на `http://192.168.1.15/` — пропатчен на `host.docker.internal:18080/`.
## Стабильность
- Нестабильна на bridged-WiFi → переведена в NAT (стало лучше, но всё равно требует осторожности).
- Один случай (после нескольких часов uptime): network adapter в VM "повис" — все TCP-handshake проходили, но через них трафик не шёл. Лечится `ipconfig /release && /renew` внутри VM через VBoxManage guestcontrol.
- **Долгосрочно**: пора планировать scheduled task внутри VM, который при детекции downtime автоматически перезагружает network adapter / iisreset. Или вообще переезд на Hyper-V — рекомендация Microsoft для Windows-гостей.
## Известные баги в текущей конфигурации
- **X-Forwarded-Proto/Host headers** не передаются с traefik в IIS → CMS делает redirect на `http://www.<domain>:4443/` (mixing HTTP scheme with HTTPS port). Не критично, но требует фикса.
- **Логи в C:\inetpub\logs\** растут (~6 GB на момент recovery) — нужна ротация.