deploy(labtools-pro): b LIVE on vds-kzntsv — cutover done, labtools.pro on VDS

DNS flip confirmed at authoritative ns1.reg.ru (Resolve-DnsName) + 8.8.8.8 ->
89.253.255.94 (labtools.pro/www; NOT labtools.ru). Earlier checks hit stale TTL
cache; authoritative NS was the truth.

Stack 19 traefik-rule -> Host(labtools.pro)||Host(www.labtools.pro) via Portainer
PUT (env 8/8 preserved, pullImage=false). LE cert issued instantly (ssl_verify=0).
Live-smoke GREEN: both hosts 200 (nav+catalog+products), redirects parity, sitemap
index host=www, real content (lang=en). Staging host removed (->404). External
check from RUVDS box: labtools.pro/www -> 89.253.255.94 HTTP 200 trusted cert.
RUVDS labtools.pro left intact as rollback.

Task closed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-02 12:07:52 +03:00
parent 531d7f0fda
commit ed99f2225b
3 changed files with 15 additions and 13 deletions

View File

@@ -62,13 +62,13 @@ curl -ksS -X POST "$BASE/api/stacks/create/standalone/string?endpointId=1" -H "X
### Косметика (не дефект, отдано workshop)
Стартовый баннер в логе — `labtools.ru (snolla) listening…` — строка-константа унаследована из labtools.ru-референса при скаффолде. Идентификация сайта = siteId в production.json (663F9410…), на рендер/контент не влияет.
## Cutover (live DNS) — GATED, действие ОПЕРАТОРА (ещё НЕ выполнен)
Бой live на [[../entities/ruvds-iis-host]] (`80.64.31.36`) **остаётся живым** до подтверждения. Порядок (как emspb):
1. **(оператор)** reg.ru: A-записи `labtools.pro` + `www.labtools.pro``89.253.255.94` (с RUVDS `80.64.31.36`). Понизить TTL заранее.
2. ⚠️ **Проверить внешним резолвером (8.8.8.8), что флипнут именно `labtools.pro`** (НЕ `labtools.ru` — он тоже ждёт cutover на RUVDS; не перепутать домены). Cм. memory [operator-dns-flip-verify-domain-before-cutover].
3. **(ops) ТОЛЬКО ПОСЛЕ flip:** в стеке `labtools-pro` (Id 19) заменить traefik-rule на `Host(\`labtools.pro\`) || Host(\`www.labtools.pro\`)` (Portainer PUT, env сохранить, pullImage=false). LE HTTP-01 выпустит cert на первый хит.
4. Проверить LE cert выпущен + live-smoke на боевом хосте; убрать staging-хост `labtools-pro.vds.kzntsv.site` из rule post-cutover.
5. Отрепортить workshop.
## Cutover (live DNS) — ✅ ВЫПОЛНЕН 2026-07-02
Порядок был (как emspb):
1. **(оператор)** reg.ru: A-записи `labtools.pro` + `www.labtools.pro``89.253.255.94` (с RUVDS `80.64.31.36`).
2. **(ops) verify флипа перед traefik:** предыдущие проверки ловили старый TTL-кэш (публичные резолверы отдавали 80.64.31.36); **авторитетный `ns1.reg.ru` через `Resolve-DnsName` подтвердил** `labtools.pro`+`www``89.253.255.94` (TTL 3600), 8.8.8.8 догнал. Именно `.pro` (НЕ `.ru`). Урок: при "поменял DNS" проверять авторитетный NS напрямую, а не только кэширующие резолверы. Cм. memory [operator-dns-flip-verify-domain-before-cutover].
3. **(ops) ТОЛЬКО ПОСЛЕ flip:** стек `labtools-pro` (Id 19) traefik-rule `Host(\`labtools.pro\`) || Host(\`www.labtools.pro\`)` (Portainer PUT, env сохранён 8/8, pullImage=false). LE HTTP-01 выпустил cert **мгновенно** (ssl_verify=0 с первого хита).
4. **Live-smoke GREEN:** оба хоста 200 (nav+каталог+продукты); редиректы (ball-mills→lshm-750, /Contacts→lowercase, /contacts/→trailing) parity; sitemap index 7 детей host=www; контент реальный (12728 B, `lang="en"`). staging-хост `labtools-pro.vds.kzntsv.site` убран из rule (→ 404). **Внешняя проверка с RUVDS-хоста (Королёв, public DNS):** `labtools.pro`+`www` → 89.253.255.94 HTTP 200, cert доверенный.
5. RUVDS labtools.pro — rollback-путь, жив (отвечает 301, TLS ок), НЕ тронут.
⚠️ **Порядок критичен:** Host-правило добавлять ТОЛЬКО ПОСЛЕ flip DNS (иначе traefik проактивно тянет LE-cert HTTP-01, challenge упадёт на RUVDS → сожжём rate-limit).