3.6 KiB
Журнал миграции в Timeweb
Хронология фактического переезда. План и архитектурные решения — в timeweb.md. Здесь только то, что реально сделано, с датами.
Новые записи — сверху.
Шаг 3 — переключение auth на cr.yandex (2026-05-22, выполнено)
Заменена аутентификация в Yandex Container Registry с YC-metadata service на OAuth-token из vault.
Изменения:
files/yandex-docker-registry-auth.sh— удалён.playbook-homepage.yml— задачаansible.builtin.script: yandex-docker-registry-auth.shзаменена наcommunity.docker.docker_loginсusername: oauth,password: "{{ yc_oauth_token }}".playbook-transcriber.yml— то же самое.
Локальные push-плейбуки (playbook-homepage-registry.yml,
playbook-transcriber-registry.yml) не трогал — там нет auth-задачи
в принципе, локальный docker аутентифицируется вручную
(yc container registry configure-docker или docker login).
Если позже захочется унифицировать — можно добавить тот же
docker_login с delegate_to: 127.0.0.1.
Проверено прогоном inv pl -- homepage и inv pl -- transcriber на
текущем сервере (Yandex Cloud) — ошибок нет, контейнеры работают.
Значит и на Timeweb заработает (единственная разница — исходящий IP,
а OAuth-токен в YC принимается извне).
Шаг 2 — OAuth-token для cr.yandex (2026-05-22, выполнено)
В vars/secrets.yml добавлена (или обновлена) переменная
yc_oauth_token со свежим OAuth-токеном Яндекса. Токен будет
использоваться для логина в cr.yandex с новой машины Timeweb
(вместо текущего скрипта files/yandex-docker-registry-auth.sh,
который завязан на YC metadata service 169.254.169.254 и
работает только внутри YC).
Сам код переключения на community.docker.docker_login пока не
вносится — это следующая итерация. Сейчас токен просто положен в
vault, чтобы не делать этого в день cutover'а под прессом.
Шаг 1 — снижение TTL DNS (2026-05-22, выполнено)
В админке Yandex 360 для зоны vakhrushev.me уменьшен TTL
A-записей с 21 600 с (6 ч) до 1 200 с (20 мин). Это даёт
запас по времени на распространение изменений после смены IP в
день cutover'а — старые кэширующие резолверы перестанут отдавать
старый адрес максимум через 20 минут (вместо 6 часов).
Делается заранее, потому что само снижение TTL тоже распространяется по кэшам по правилам старого TTL — то есть после правки нужно подождать ≥ 6 часов, чтобы новое значение TTL само успело прижиться. Раньше cutover'а нужно сделать с большим запасом — день в день не сработает.