Преместване на Entrosity Hub
Entrosity Hub и Entrosity Axis споделят едно име на хост: Hub на /, Axis
на /axis, документацията на /docs (PLATFORM_DOMAIN). Преместването им
на друго име е една автоматизирана със скрипт стъпка на хоста. Агентите и
конекторите не са засегнати: всяко по-ранно име продължава да обслужва API
на Axis за устройствата, регистрирани към него, и пренасочва браузърите към
новото име.
История
Влизането беше преместено от Axis в Hub през септември 2026 г. на три стъпки:
- Влизане чрез Hub. Преди Axis сам удостоверяваше потребителите на
https://manage.entrosity.com(порталът под/manage). Hub беше стартиран до него наhttps://portal.entrosity.com, потребителите, тенантите и ролите на Axis бяха копирани там сplatform-server import-rmm, а Axis премина към токените на Hub и се обслужваше наhttps://portal.entrosity.com/manage.manage.entrosity.comзапази API за регистрираните агенти и конектори и пренасочваше браузърите. - Премахване на локалното влизане. Миграцията
0013_drop_local_authпремахна паролите, сесиите, тайните за двуфакторна автентикация и поканите от базата данни на Axis (Модел на данните). Връщането към локално влизане сега означава възстановяване на резервно копие, направено преди нея. - Нови адреси. Axis беше преместен от
/manageна/axis(миграцията на Hub0002_axis_path), а Hub — наhub.entrosity.comчрез стъпкатаmoveпо-долу.
Етапите, използвани за първата стъпка (hub, import, switch,
redirect, rollback), вече са премахнати от скрипта. import-rmm все
още съществува в platform-server, но изисква база данни на Axis отпреди
миграция 0013.
Докато hub.entrosity.com няма DNS запис, продукционната среда обслужва
Hub на https://portal.entrosity.com, а Axis — на
https://portal.entrosity.com/axis; преместването по-долу завършва
превключването.
Преди да започнете
- DNS: запис
Aза новото име (напримерhub.entrosity.com), който сочи към хоста (93.123.16.234), в зонатаentrosity.comв GoDaddy. Той може да минава през прокси (Cloudflare) или не; скриптът проверява само дали името се разрешава на хоста. Caddy получава сертификата при първата заявка (HTTP-01 на порт 80), така че записът трябва да достига до хоста. - Уведомете потребителите: след преместването всички влизат отново, на новия адрес (бисквитката за сесията на Hub принадлежи на име на хост). Паролите, приложенията за автентикация и ролите остават непроменени.
- Скриптът прави резервно копие; пазете и копие на
deploy/.env.
Преместване
Изпълнете deploy/scripts/platform-cutover.sh move hub.entrosity.com (и
status) на хоста, в /opt/entrosity/deploy.
Преместването към hub.entrosity.com беше изпълнено, преди продукцията да
се разгръща от entrosity-infra, с ръчно стартирания работен процес
platform-cutover на entrosity/RMM
(.github/workflows/platform-cutover.yml), който изпълняваше скрипта чрез
SSH ключа на работния процес за разгръщане и никога не се застъпваше с
разгръщане. Този работен процес вече е изключен; entrosity-infra пази
копие в .github/workflows-disabled/:
# исторически, в entrosity/RMM
gh workflow run platform-cutover.yml -f stage=status
gh workflow run platform-cutover.yml -f stage=move -f domain=hub.entrosity.com
move:
- проверява дали името се разрешава (
getent hosts) и в противен случай спира; - прави резервно копие (
backup.sh); - задава
PLATFORM_DOMAINвdeploy/.envна новото име и добавя предишното вPLATFORM_OLD_DOMAINS(като премахва новото име от този списък, така че връщането обратно работи по същия начин); - премахва настройките, които compose вече извежда сам или които вече не
се използват:
RMM_PUBLIC_URL,RMM_PORTAL_URL,RMM_CORS_ORIGINS,RMM_AUTH_MODE,RMM_EDGE,COMPOSE_PROFILES. Compose задаваRMM_PUBLIC_URLиRMM_PORTAL_URLнаhttps://<PLATFORM_DOMAIN>/axis(Конфигурация); - рестартира Hub, бекендите (със същия брой реплики) и Caddy;
- изчаква
https://<domain>/api/platform/v1/healthzиhttps://<domain>/axis/api/v1/healthz(което потвърждава и сертификата).
status отпечатва PLATFORM_DOMAIN, PLATFORM_OLD_DOMAINS, RMM_DOMAIN,
RMM_VERSION и услугите.
За да се върнете обратно, преместете се към предишното име по същия начин.
Проверка
curl -fsS https://hub.entrosity.com/api/platform/v1/healthz
curl -fsS https://hub.entrosity.com/axis/api/v1/healthz
curl -so /dev/null -w '%{http_code}\n' https://hub.entrosity.com/api/platform/internal/v1/jwks.json # 404
curl -so /dev/null -w '%{http_code} %{redirect_url}\n' https://portal.entrosity.com/manage/ # 308 to hub.entrosity.com/axis/
curl -fsS https://portal.entrosity.com/manage/api/v1/healthz # enrolled agents
curl -fsS https://manage.entrosity.com/api/v1/healthz # enrolled agents
След това, като потребител: влезте на https://hub.entrosity.com, отворете
Entrosity Axis, отворете тенант и изпълнете скрипт на тестово
устройство. В Grafana rmm_ws_connections остава на предишното ниво
(агентите запазват връзките си), а rmm_platform_sync_age_seconds остава
под 60.
След преместването насочете към новия хост променливите на работните
процеси, които все още посочват стария хост, където е необходимо
(DEPLOY_URL, RMM_API_URL,
CI работни процеси); старите
хостове продължават да обслужват API, така че междувременно нищо не се
прекъсва.
Кои стари адреси продължават да работят
Caddy обслужва три вида сайтове (TLS, deploy/Caddyfile):
| Адрес | Браузъри | Агенти, конектори, скриптове |
|---|---|---|
https://hub.entrosity.com/ (PLATFORM_DOMAIN) | Hub; Axis на /axis; документацията на /docs | Новите регистрирания използват https://hub.entrosity.com/axis (/axis/api/…) |
https://hub.entrosity.com/manage/… | 308 към /axis/… | /manage/api/* все още се обслужва |
https://portal.entrosity.com/… (PLATFORM_OLD_DOMAINS) | 308 към същия път на името на Hub (/manage/… към /axis/…) | /axis/api/* и /manage/api/* все още се обслужват |
https://manage.entrosity.com/… (RMM_DOMAIN) | 308 към https://hub.entrosity.com/axis/…; /docs към документацията на Hub | /api/* и /manage/api/* все още се обслужват |
Агентите и конекторите запазват URL адреса на сървъра, с който са регистрирани (пренасочване към друг хост би изгубило идентификационните им данни), така че тези пътища на API остават, докато съществуват такива устройства. Повторното инсталиране с токен за регистриране премества устройството на текущия адрес. Отметките и изпратените по имейл връзки към всяка стара страница водят до съответната страница на новия адрес.