From 7bba8cf853f0b79a4c22ab199622b734260cf959 Mon Sep 17 00:00:00 2001 From: vitya Date: Fri, 5 Jun 2026 20:11:53 +0300 Subject: [PATCH] meta(handoff): tandemmebel DNS cutover 2026-06-05 Co-Authored-By: Claude Opus 4.8 (1M context) --- .tasks/NEXT_SESSION.md | 74 +++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 48 deletions(-) diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index 01fcb88..fc6cfc6 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,69 +1,47 @@ --- -_last_updated_: 2026-06-04T12:00:00+03:00 -session_id: 2026-06-04-books-vds-disk-full-remediation +_last_updated_: 2026-06-05T00:00:00+03:00 +session_id: 2026-06-05-tandemmebel-dns-cutover --- # Next session handoff -_Сессия: разбор disk-full алерта Rusonyx на books VDS (89.253.255.133). Причина найдена, -диск 96%→44%, спам-петля заглушена, guard поставлен. Ничего не висит. Вики обновлён + закоммичен (`b0559fdb`)._ +_Сессия: tandemmebel.ru мигрировал на RUVDS (владелец сам перенастроил DNS). Проверено, зафиксировано +в `.tasks/iis-migration-to-ruvds.md` (commit `539f1a07`). Source НЕ заглушен — user-decision держать +как warm rollback. Ничего не висит._ ## Recent commits -- `b0559fdb` wiki(books-vds): disk-full incident 2026-06-04 + Bookva->slovo job scoping +- `539f1a07` task(iis-migration): tandemmebel DNS cutover 2026-06-05 -## Что сделано (books VDS, 04.06) +## Что сделано (iis-migration, 05.06) -- ✅ **Диск 96%→44%** (53/122 ГБ). Освобождено ~64 ГБ: обрезаны runaway json-логи - `books-task-runner` (32.8 ГБ) + `bookva-task-runner` (5.6 ГБ); снесены 11 orphan - BuildKit-билдеров + 9 `*_state` volumes (~26 ГБ). -- ✅ **Durable guard:** `/etc/logrotate.d/docker-containers` (copytruncate 200M, rotate 3) + - hourly `/etc/cron.d/docker-logrotate`. Без рестарта докера. crond active, тест-ран чистый. -- ✅ **Root cause:** `books-task-runner` (тенант slovo) error-loop'ил в Ozon по продавцу - **Bookva (client_id 50542)**, чей `api_key` в `books-db.sellers` **намеренно подменён на - слововский** (`9683…`) как ревокация доступа books→Bookva-Ozon. Спам шёл из legacy - seller-перебирающих agenda-джоб без скоупа. -- ✅ **Фикс:** проставлен `data.idSeller=2` (slovo) пяти legacy-джобам в `books-job-scheduler-mongo` - (`ozon fbs postings syncronization`, `generate old prices`, `ozon fbs products syncronization`, - `create ozon products in incorrect state report`, `put on sale products`). Залипшие overdue-прогоны - оборваны (unlock `lockedAt:null` + `docker restart books-task-runner`). - **Invalid-Api-Key 6448/мин → 0**, джобы отработали по slovo и перепланировались. -- ✅ **Deploy-durable** (user спрашивал): эти джобы legacy (без `data._fromConfig`), reconciler - (`RECONCILER_ENABLED=true`) трогает только `_fromConfig`-джобы; в `tasks.json` (в образе) у них - `schedule:null` → пропускает. Эмпирика: `stocks-sync idSeller:2` пережил деплой 31.05. -- ✅ Сверка полноты: 7 seller-перебирающих тасок — все заскоуплены; reconciler-gen джобы уже на - `salesChannels:[2]`. Группа В снята: Bookva-канал = `type=ym` (Яндекс), Ozon-канала Bookva нет. +- ✅ **tandemmebel.ru / www / maljarka → RUVDS** (`80.64.31.36`) — authoritative ns1.reg.ru + 8.8.8.8 + + 1.1.1.1 + Yandex. apex+CNAME сработал (www/maljarka follow apex). Sn: `tandemmebel.ru`/`www` 200 OK; + `maljarka` 502 = pre-existing CMS-дефект (на source ровно так же, не регрессия). +- ✅ Снята scope-exception 2026-05-24 (tandemmebel больше не «остаётся на windows»). +- ✅ **Source оставлен как rollback** — user-decision. Сайт `snolla` = общий catch-all, нельзя `Stop-Website`. -## ⚠️ НЕ ДЕЛАТЬ (специфично для этого инцидента) +## Баланс DNS (на 05.06) -- **НЕ «чинить» ключ Bookva (50542) в `books-db.sellers`** — он сломан НАМЕРЕННО (подменён на - слововский) как ревокация. Живой ключ Bookva — в `bookva-db`/конфиге, для тенанта bookva. - Если снова увидишь `Invalid Api-Key` по 50542 в books-стеке — это не баг ключа, а недо-скоупленная - джоба. Полный разбор: `.wiki/entities/books-vds.md` § Disk-full incident. +- **RUVDS `80.64.31.36` (14):** kupimknigi.spb.ru, emspb.ru+www, pilorama98.ru+www, labtools.pro+www, + labtools.ru+www, rimiz.ru+www, tandemmebel.ru+www, maljarka.tandemmebel.ru. +- **windows-source `94.19.247.14` (11):** snolla.com + 9× `*.snolla.com` (incl `tandemmebel.snolla.com`, + `rimiz.snolla.com`) + … — все ещё на этой машине. Полный decommission невозможен пока они тут. -## Follow-up'ы (НЕ блокеры) +## Спроси user'а -| Что | Деталь | -|---|---| -| Каноничный фикс скоупа | legacy seller-джобы стоит перенести в `tasks.json` со скоупом ИЛИ вывести из эксплуатации (возможно, дублируют reconciler-gen). Mongo-правка надёжна, но если релиз даст им `schedule` в tasks.json без скоупа — Bookva-доступ вернётся. → сказать разработчикам books. | -| wiki-drift | `bookva-*` stack + books-task-runner/scheduler не в stack-inventory `books-vds.md`; нужен re-inventory. | -| Native log rotation | daemon.json `max-size`/`max-file` + docker restart — не делал (нужен maintenance window); logrotate-guard покрывает. | - -## Открытые треки (.admin — ещё живые) - -| Трек | Готовность | Entry-point | -|---|---|---| -| `harden-books-vds-exposed-ports` | ⚪ ready (user сказал «пока нет» на mongo-allowlist) | `.tasks/harden-books-vds-exposed-ports.md` | -| `books-bookva-user-whitelist-gathering` | ⚪ ready — gathering от учредителя | `.tasks/STATUS.md` | -| `stateful-split-volume-copy` / `infra-inventory` | ⚪ ready | `.tasks/STATUS.md` | +- Когда переедут остальные 11 `*.snolla.com` → разом `Stop-Website snolla` + архив `C:\sites\snolla` + (8.66 GB) → kreknin. До тех пор source держим живым. +- `maljarka.tandemmebel.ru` 502 — чинить CMS-тенант отдельно? (не блокер, pre-existing). ## Не делать (preemptive guards) -- **Не возвращать `:9200` / stateful-порты на `0.0.0.0`** без IP-allowlist (books VDS, ransom-бот). -- **Не `ssh + docker compose up -d`** на VDS Portainer-stacks — только Portainer API (искл. traefik/portainer). +- **Не `Stop-Website snolla`** на windows-source — 11 живых тенантов (`*.snolla.com`), включая + `tandemmebel.snolla.com`. Не выключать CMS-тенант tandemmebel по той же причине. +- **Не глушить tandemmebel.ru индивидуально** без явного запроса — user выбрал warm rollback. +- IIS-правки требуют **elevated shell** (текущий `vitya` — не admin; W3SVC running). - **branch ahead от origin** — push без явного grant'а (Rule 4). Этой сессии grant НЕ давали. ## Memory updates за сессию -- (нет нового файла) — инцидент + корректный root-cause + «не чинить ключ Bookva» зафиксированы - в `.wiki/entities/books-vds.md` (закоммичено `b0559fdb`). +- (нет нового файла)