tasks(iis-migration-to-ruvds): partial cutover live — kupimknigi DNS flipped
Session 2026-05-23 evening → 2026-05-24: full snolla site migration windows-recovery-host → RUVDS Win Server 2025 Core, partial DNS cutover для 1 prod hostname (kupimknigi.spb.ru), оставшиеся 24 hostnames pending. What's live on RUVDS: - snolla IIS site catch-all *:80: + 25 HTTPS SNI bindings (1 per hostname, LE certs от 2026-04-23 / valid до 2026-07-22) - 8.66 GB / 44725 files transferred via scp после ISP-block discovery - ApplicationPoolIdentity + ACL grant verified - HTTP/2 auto-negotiated, MSSQL/imgproxy/MinIO connectivity OK from RUVDS Findings (Decisions log в task file для деталей): 1. Outbound 445 блокирует home ISP (не RUVDS FW) — `windows-server-2025-core-bootstrap.md` SMB-section deprecated, SSH/scp = canonical transfer-метод. 2. Home network HTTP-middlebox mangles Host header в outbound external HTTP — тест с source даёт garbled response; тест с VDS (третья сеть) даёт корректный. 3. traefik acme.json → IIS PFX recipe: extract base64 cert+key per cert → openssl pkcs12 -export → Import-PfxCertificate + AddSslCertificate by thumbprint with SslFlags=1 (SNI). Reusable, потенциально новый concept. 4. IIS 10 на Win Server 2025 говорит HTTP/2 by default через TLS. 5. 4 hostnames (maljarka.tandemmebel.ru + 3 rimiz) → 502/404 на RUVDS; на source IIS:8089 возвращают 200 default-page. Pre-existing CMS-tenant config gap, не migration defect. Scripts added: - scripts/iis-migration-to-ruvds/01-ruvds-bootstrap.ps1 (idempotent) - scripts/iis-migration-to-ruvds/02-source-transfer.ps1 (не использовался — SMB не работает; оставлен как reference) - scripts/iis-migration-to-ruvds/README.md Cleanup done: - Plaintext PFX/PEM keys в C:\Users\vitya\iis-backup-pre-ruvds\certs\ удалены (PFX import на RUVDS уже сделан, source-of-truth = traefik acme.json). - `.secrets/` уже удалён ранее в этой session (см. предыдущий commit). Source state: IIS:8089 + traefik routes ALIVE — rollback ready. Decommission после 1-week soak с RUVDS как live prod. Не push'нуто — ждёт user grant per project-discipline Rule 4. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
42
scripts/iis-migration-to-ruvds/README.md
Normal file
42
scripts/iis-migration-to-ruvds/README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# IIS migration to RUVDS — execution scripts
|
||||
|
||||
Скрипты для миграции IIS-хостинга `windows-recovery-host` (DESKTOP-NSEF0UK) → RUVDS Win Server 2025 Core (`80.64.31.36`).
|
||||
|
||||
Контекст и план целиком — `.tasks/iis-migration-to-ruvds.md` + `.wiki/concepts/windows-server-2025-core-bootstrap.md`.
|
||||
|
||||
## Execution order
|
||||
|
||||
| # | Script | Where to run | Purpose |
|
||||
|---|---|---|---|
|
||||
| 1 | `01-ruvds-bootstrap.ps1` | **на RUVDS** под RDP (PowerShell admin) | Install IIS + URL Rewrite + open FW 80/443 + open SMB scoped to source IP + create C:\sites share. Idempotent. |
|
||||
| 2 | `02-source-transfer.ps1` *(coming next)* | **на source** (DESKTOP-NSEF0UK) | net-use → robocopy snolla → verify. |
|
||||
| 3 | `03-ruvds-recreate-sites.ps1` *(coming next)* | **на RUVDS** | appcmd add site / bindings / web.config conn-string swap → `mssql.kzntsv.site,1433`. |
|
||||
| 4 | `04-pilot-and-swap.md` *(playbook, not script)* | mixed | Pilot kupimknigi.spb.ru через hosts-file → 24h soak → DNS A swap. |
|
||||
| 5 | `99-ruvds-cleanup-smb.ps1` *(after cutover)* | **на RUVDS** | Remove SMB share + FW rule (закрываем 445 после migration). |
|
||||
|
||||
## Pre-reqs
|
||||
|
||||
- RUVDS up + RDP ready (`pass show ruvds-iis/full-env`)
|
||||
- Source public IP **46.151.25.64** уже whitelist'нут в скрипте `#1` (если source IP меняется — `-SourceIp <new>` параметр)
|
||||
- На RUVDS — Administrator-shell PowerShell
|
||||
|
||||
## How to copy scripts to RUVDS
|
||||
|
||||
Два варианта:
|
||||
|
||||
**A. RDP drive-redirect (рекомендуемо):**
|
||||
1. `mstsc /v:80.64.31.36` → Show Options → Local Resources → More → Drives → отметить `C:` → ОК.
|
||||
2. После logon в RUVDS — `\\tsclient\C\` mount'нут. Скопировать `C:\Users\vitya\projects\.admin\scripts\iis-migration-to-ruvds\01-ruvds-bootstrap.ps1` → `C:\bootstrap.ps1`.
|
||||
3. PowerShell admin → `C:\bootstrap.ps1`.
|
||||
|
||||
**B. Paste-friendly:** открыть скрипт в нашей репе локально → copy всё содержимое → в RUVDS `notepad C:\bootstrap.ps1` → paste → save → run.
|
||||
|
||||
## Verification после bootstrap'а
|
||||
|
||||
На source:
|
||||
```powershell
|
||||
Test-NetConnection 80.64.31.36 -Port 445 # должно стать True
|
||||
Test-NetConnection 80.64.31.36 -Port 443 # должно стать True
|
||||
```
|
||||
|
||||
Если оба True — переходим к script #2.
|
||||
Reference in New Issue
Block a user