deploy(labtools): 43e28ba LIVE on vds-kzntsv — cutover done, labtools.ru on VDS
DNS zone is on Yandex DNS (dns1/dns2.yandex.net), not reg.ru. Flip propagated unevenly (dns2 first, dns1 lagged); cutover gate = BOTH authoritative Yandex NS agree apex+www -> 89.253.255.94 (monitor waited for it) so LE HTTP-01 can't hit RUVDS via a stale auth server and burn the rate-limit. Stack 17 traefik-rule -> Host(labtools.ru)||Host(www.labtools.ru) via Portainer PUT (env 8/8 preserved, pullImage=false). LE cert issued (~t+20s; brief self-signed window during issuance). Live-smoke GREEN: both hosts 200 (nav+catalog+products), redirects parity (trailing/lowercase/.php), sitemap index host=labtools.ru (this tenant's siteUrl is non-www), theme assets byte-identical (RUVDS 301 apex->www made the direct md5 an artifact; -L => MD5-OK). Staging host removed (->404). External: apex->VDS 200; www still split-brain on RUVDS cache (200, identical content, TTL 6h). RUVDS left intact as rollback. Task closed. Whole batch done: labtools.ru + labtools.pro LIVE on VDS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,12 +57,13 @@ PORT — не переопределять (образ дефолтит 5000; EX
|
||||
- `/assets/<ownerId>/*.webp` из MinIO — **байт-в-байт** с боем (44444, 24354); content-type `application/octet-stream` — как на бою.
|
||||
- Контейнер healthy (MSSQL+S3 подключены).
|
||||
|
||||
## Cutover (live DNS) — GATED, действие ОПЕРАТОРА
|
||||
Бой на [[../entities/ruvds-iis-host]] (`80.64.31.36`) **остаётся живым** до подтверждения. Порядок:
|
||||
1. **(ops)** В стеке `labtools` добавить в traefik-rule: `Host(\`labtools.ru\`) || Host(\`www.labtools.ru\`)` (LE HTTP-01 выпустит cert на первый хит после DNS-flip).
|
||||
2. **(оператор)** reg.ru: A-записи `labtools.ru` + `www.labtools.ru` → `89.253.255.94` (с RUVDS `80.64.31.36`). Понизить TTL заранее.
|
||||
3. Проверить LE cert выпущен + smoke на боевом хосте.
|
||||
4. `labtools.pro` — открытый вопрос (бой IIS обслуживал и его; scope таски = labtools.ru). Решить отдельно.
|
||||
## Cutover (live DNS) — ✅ ВЫПОЛНЕН 2026-07-02
|
||||
⚠️ **DNS зоны `labtools.ru` — на Yandex DNS (`dns1/dns2.yandex.net`), НЕ reg.ru** (в отличие от `labtools.pro`/reg.ru). Порядок был:
|
||||
1. **(оператор)** Yandex DNS: A-записи `labtools.ru` + `www.labtools.ru` → `89.253.255.94` (с RUVDS `80.64.31.36`).
|
||||
2. **(ops) verify перед traefik — критично:** флип шёл неравномерно, **dns1 и dns2 расходились** (dns2 обновился первым, dns1 отставал). Гейт cutover = **ОБА** авторитетных NS согласованно отдают VDS по apex+www (иначе LE мог попасть на dns1→RUVDS→сжечь rate-limit). Публичные резолверы кэшировали до 6ч (TTL 21600) — для LE не критично (резолвит по авторитетному). Cм. memory [operator-dns-flip-verify-domain-before-cutover].
|
||||
3. **(ops) после подтверждения обоих NS:** стек `labtools` (Id 17) traefik-rule → `Host(\`labtools.ru\`) || Host(\`www.labtools.ru\`)` (Portainer PUT, env 8/8 сохранён, pullImage=false). LE-cert выпущен (~t+20s; первые хиты ловили self-signed в окне issuance, потом ssl_verify=0).
|
||||
4. **Live-smoke GREEN:** оба хоста 200 (nav + каталог-секции + продукты); редиректы (`/about/`→trailing, `/Contacts`→lowercase, `/index.php`→`/`) parity; sitemap = index (host=`labtools.ru`, non-www — siteUrl этого тенанта без www, в отличие от .pro/R3); theme-ассеты из MinIO byte-identical бою (RUVDS отдаёт 301 apex→www, поэтому прямой md5 «DIFF» — артефакт; с `-L` MD5-OK). staging-хост `labtools.vds.kzntsv.site` убран (→404). **Внешняя проверка с RUVDS-хоста:** `labtools.ru`→VDS 200; `www` ещё на кэше RUVDS (200, идентичный контент) — split-brain окно, тухнет по TTL.
|
||||
5. `labtools.pro` — **закрыт отдельно** ([[labtools.pro-vds-deploy-runbook]], LIVE 2026-07-02).
|
||||
|
||||
## Rollback
|
||||
- **DNS:** вернуть A-записи `labtools.ru`/`www` → `80.64.31.36` (RUVDS IIS живой, нетронут). Откат = смена DNS.
|
||||
|
||||
Reference in New Issue
Block a user