tasks(NEXT_SESSION): refresh after iis-migration close
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
---
|
||||
_last_updated_: 2026-05-25T11:30:00+03:00
|
||||
_last_updated_: 2026-05-25T13:00:00+03:00
|
||||
session_id: 2026-05-25-es-windows-to-books-vds
|
||||
---
|
||||
|
||||
@@ -7,19 +7,18 @@ session_id: 2026-05-25-es-windows-to-books-vds
|
||||
|
||||
## Recent commits
|
||||
|
||||
- `tasks(migrate-elasticsearch-to-books-vds): 🟢 closed — 3 indices Windows→books VDS` (`3246dabb`) — session close.
|
||||
- `tasks(NEXT_SESSION): finalize handoff at session close` (`97757b89`) — prev session close.
|
||||
- `tasks(iis-migration-to-ruvds): 🟢 closed Phase 1 per user decision` (`2eba1c5c`) — close.
|
||||
- `tasks(NEXT_SESSION): refresh handoff after ES migration commit` (`d746d3bd`)
|
||||
- `tasks(migrate-elasticsearch-to-books-vds): 🟢 closed — 3 indices Windows→books VDS` (`3246dabb`)
|
||||
- `tasks(NEXT_SESSION): finalize handoff at session close` (`97757b89`)
|
||||
- `tasks(books-vds-stacks-to-portainer): close 🟢 — 6 stacks migrated SSH-compose → Portainer` (`86c44c3d`)
|
||||
- `scripts(books-vds-portainer-migration): Phase 1 adapter ready` (`141efe97`)
|
||||
- `tasks(books-vds-stacks-to-portainer): Phase 0 probe complete, +imgproxy scope` (`bfb942cd`)
|
||||
|
||||
## Open треки
|
||||
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| `stateful-split-volume-copy` ⚪ | not started; lean playbook готов, fits real books VDS (89.253.255.133) | `.tasks/stateful-split-volume-copy.md` |
|
||||
| `iis-migration-to-ruvds` 🟡 | soak (kupimknigi + emspb DNS flipped 2026-05-24, 22 pending DNS swaps) | `.tasks/iis-migration-to-ruvds.md` |
|
||||
| `infra-inventory` ⚪ | ready, не начат — **books VDS factsheet ещё свежее после ES migration**, готов к ingest в admin-detailed runbook | `.tasks/infra-inventory.md` |
|
||||
| `stateful-split-volume-copy` ⚪ | not started; lean playbook готов | `.tasks/stateful-split-volume-copy.md` |
|
||||
| `infra-inventory` ⚪ | ready, books VDS factsheet свежий (ES + 6 Portainer стэков) — момент удачный для ingest | `.tasks/infra-inventory.md` |
|
||||
| `books-bookva-user-whitelist-gathering` ⚪ | ready, long-lead gathering (email-based) | `.tasks/books-bookva-user-whitelist-gathering.md` |
|
||||
| `books-vds-bookva-bootstrap` 🔵 | blocked on tenant-split Phase 4 | `.tasks/books-vds-bookva-bootstrap.md` |
|
||||
| `books-dns-cutover-bookva` 🔵 | blocked on books-vds-bookva-bootstrap | `.tasks/books-dns-cutover-bookva.md` |
|
||||
@@ -27,28 +26,24 @@ session_id: 2026-05-25-es-windows-to-books-vds
|
||||
|
||||
## Спроси user'а
|
||||
|
||||
- **Decommission Windows ES** — когда выключаем `elasticsearch` container на windows host + удаляем traefik label `elasticold.kzntsv.site`? Source оставлен running per request, но это transient: live load теперь = 0 hits (verified 5 min post-cutover), кэш на windows host практический balast. Trigger момент — на user'е.
|
||||
- **Rollback retention** — `.bak-pre-es-migration-2026-05-25` файлы в `/opt/books/{api,task-runner,job-scheduler}/config/` стоит держать до decommission момента или дольше?
|
||||
- **kreknin snapshot `pre-migration-2026-05-25`** (только read_me, 4.8kb) — оставить до retention rotation или явно удалить как «полезность нулевая»?
|
||||
- **Какую таску брать следующей?** Хорошие кандидаты: `infra-inventory` (books VDS теперь fully documented + ES populated — момент удачный), `iis-migration-to-ruvds` (DNS TTL для 22 hostnames), `stateful-split-volume-copy` (lean playbook готов).
|
||||
- **«потом миграции буут»** — user в этой сессии анонсировал ещё migration round. Какие конкретно? Возможные пункты исходя из контекста — другие сервисы с windows host → books VDS / vds-kzntsv (mssql? minio? ozon-seller-api-gateway?). Ask before starting.
|
||||
- **Backup re-fire post-ES-migration** — статус? (был triggered в 12:48 после ES migration close, polling task bt`btlfijyi6` ожидался). Verify через ntfy/email + log tail `/var/log/books-vds-backup/2026-05-25.log`. Если success → cron 06:00 auto-run завтра не нужен ad-hoc.
|
||||
- **iis-migration descoped items** — нет tracker tasks для 14 plan-to-migrate hostnames, source IIS decommission, LE renewal до 2026-07-22, cleanup, wiki concept updates. Создать ⚪ tasks или оставить в Closure note? (User в этой сессии явно отказался от 3-way split.)
|
||||
|
||||
## Не делать (preemptive guards)
|
||||
|
||||
- **Не выключать Windows ES** (`docker stop elasticsearch` на windows host) без user'ского явного решения — это decommission step, отдельная задача.
|
||||
- **Не редактировать `/opt/books/<svc>/config/default.json`** напрямую без `cp <file>.bak-<date>` перед — bind-mounted, change live для приложения; восстановление только через .bak копии.
|
||||
- **Не удалять `reindex.remote.whitelist`** из target ES env в Portainer stack 33 — harmless idle, может пригодиться для будущих re-imports.
|
||||
- **Не push без grant** — auto-push grant был session-only (Rule 4). Next session start = ask-mode again.
|
||||
- **Не migrate traefik / portainer** на books VDS — management plane, recreate ломает access.
|
||||
- **Не trust `https://elasticsearch.kzntsv.site/`** без basicAuth — endpoint behind traefik middleware `elasticsearch-auth`, user `books`. Pwd живёт в `/opt/books/api/config/default.json` (не в pass entry yet).
|
||||
- **Не plод follow-up tasks для iis-migration descoped items** без явного user request — user в этой сессии отверг 3-way split, всё в Closure note таски.
|
||||
- **Не trigger reg.ru DNS swap для 14 plan-to-migrate hostnames** — нет API key в pass, ручная операция user'а.
|
||||
- **Не decommission source Windows IIS** (port 8089 + traefik routes) — 16 hostnames всё ещё указывают на 94.19.247.14, decommission = downtime для них.
|
||||
- **Не выключать Windows ES** (`docker stop elasticsearch` на windows host) — source держится per user request как rollback после ES migration.
|
||||
- **Не редактировать `/opt/books/<svc>/config/default.json`** напрямую без `cp <file>.bak-<date>` перед — bind-mounted, change live для приложения.
|
||||
- **Не push без grant в next session** — auto-push grant был session-only (Rule 4). В этой сессии user разово grant'нул на `пуш` (single commit) — следующий push потребует нового grant.
|
||||
- **Не trust `https://elasticsearch.kzntsv.site/`** без basicAuth — endpoint behind traefik middleware. Pwd живёт в `/opt/books/api/config/default.json` (НЕ в pass entry).
|
||||
|
||||
## Memory updates за сессию
|
||||
|
||||
- **Учить:** `pass show books-vds/full-env` НЕ содержит ES basicAuth pwd. Pwd живёт в самих consumer configs `/opt/books/<svc>/config/default.json` (key `elasticsearch.auth.password`). Source basicAuth hash = target basicAuth hash → один password покрывает оба endpoint'а.
|
||||
- **Учить:** `path.repo` + `reindex.remote.whitelist` — это **static** ES settings, требуют env vars + container restart. НЕ показываются в `_cluster/settings?include_defaults=true` (только dynamic settings). Verify через `docker inspect <container> --format '{{range .Config.Env}}{{println .}}{{end}}'`.
|
||||
- **Учить:** ES `_reindex` from remote НЕ поддерживает `slices` (manual или auto). Single-threaded scroll → bulk. Для 700mb / 820k docs over public network — ~5 мин. Для 105k docs products (мелкие 549 bytes/doc) — ~25 мин (per-doc HTTP overhead). artmone 2621 docs — 25s (sync).
|
||||
- **Учить:** ES `_search` `total` capped по умолчанию `track_total_hits=10000` в 7.x. Для accurate count — `?track_total_hits=true` или просто `/<index>/_count`.
|
||||
- **Учить:** Portainer-managed stack env update через `PUT /api/stacks/<id>?endpointId=1` с body `{stackFileContent, env, prune, pullImage}`. Recreate происходит автоматически. Verify по `docker inspect ... StartedAt` change.
|
||||
- **Учить:** `python3` НЕ работает в git-bash на windows (запускает Windows Store launcher → exit 49, печатает "Python"). `python` — works (PATH'е есть Python 3.13). При heredoc + `2>&1` всё иногда падает silently — лучше прямой `python -c "..."` или `python <<'PY'`.
|
||||
- **Учить:** Windows PS `Invoke-WebRequest` НЕ имеет `-SkipCertificateCheck` в 5.1. PS 7 имеет. На этой машине — PS 5.1, поэтому для self-signed/auth checks использовать curl через bash.
|
||||
- **Reference:** task chronology — [[.tasks/migrate-elasticsearch-to-books-vds]] § Closure note (rollback recipe + decommission notes).
|
||||
- **Reference:** books VDS entity wiki [[.wiki/entities/books-vds]] обновлён 2026-05-25 — stack 33 теперь reflects env additions + ES indices populated note в Making-of-history.
|
||||
- **Учить:** на closure-time всегда run актуальный DNS probe для migration tasks с DNS scope — task file может lag user'ского background swap'а (в этой сессии user silently swap'нул 5 пар hostnames между `2026-05-24` cutover и `2026-05-25` closure, task file showed 2 swapped, real was 9).
|
||||
- **Учить:** ES kreknin daily snapshot `daily-<date>` — script `set -e` fails если `daily-<date>` уже exists в repo (idempotent НЕ). Re-fire backup в тот же день → `DELETE _snapshot/kreknin/daily-<date>?pretty` сначала.
|
||||
- **Учить:** user pattern для «закрой хорошо» = **finish properly, descope cleanly в Closure note** (НЕ create follow-up tasks). Несколько раз: ES migration close + iis-migration close — same shape. Closure notes capture what's NOT done без proliferating board state.
|
||||
- **Reference:** [[../.tasks/iis-migration-to-ruvds]] § Closure note — descope details для 5 categories of remaining work + rollback recipe.
|
||||
- **Reference:** [[../.tasks/migrate-elasticsearch-to-books-vds]] § Closure note — rollback recipe.
|
||||
|
||||
Reference in New Issue
Block a user