Издания на агента
Агентите и конекторите се обновяват сами от изданията, публикувани на сървъра. Те се управляват в Admin → Agent releases.
Публикуване на издание
В портала, в раздела Publish a release:
| Поле | Значение |
|---|---|
| Component | agent или connector. |
| Version | Семантична версия, например 1.2.0. Всяка версия може да бъде издадена само веднъж (release_exists). |
| Channel | Stable или Beta (получават го само тенантите в канала beta). |
| Rollout (%) | Делът на инсталациите, на които се предлага изданието (0–100). |
| MSI | Инсталаторът, компилиран с публичния ключ за издания. |
| Notes | Бележки към изданието. |
MSI файлът се качва в обектното хранилище като чернова. Publish
проверява размера и SHA-256 на качения файл и подписва изданието с
Ed25519 ключа на сървъра (RMM_RELEASE_SIGNING_KEY; без него:
signing_key_missing). Най-новото публикувано stable издание става
също и MSI файлът зад връзките за изтегляне при регистриране и зад
разпространението (push) на агента чрез AD.
По-късно можете да увеличите процента на пускане на публикувано издание, както и да изтриете издание: неговият MSI файл се изтрива, а инсталациите, които вече работят с него, продължават да работят.
От автоматизация
Същото API се използва от CI със специален токен (RMM_RELEASE_TOKEN),
който има достъп само до крайните точки за издания:
.github/workflows/release.ymlвentrosity-axis-agentиentrosity-axis-connectorпубликува издания с етикет (tag) (v*)..github/workflows/dev-release.ymlв същите хранилища публикува dev компилация (dev build) на MSI файла при всеки push къмmain, като версия0.1.<run>-dev.<commit>.
И двата публикуват само когато променливата на хранилището
RELEASE_PUBLISH_ENABLED е true
(Публикуване на самообновявания).
За продукцията на Entrosity тя е включена и в двете хранилища, така че
всеки push към main на агента или конектора достига до продукцията като
dev компилация.
Докато не бъде поставен етикет v1.0.0, dev компилациите се публикуват в
канала stable с процент на пускане 100 %, така че достигат до всеки
тенант. След поставяне на етикета v1.0.0 задайте променливата на
хранилището (repository) DEV_RELEASE_CHANNEL на beta (или променете
стойността по подразбиране в работния процес), за да спрат dev
компилациите да достигат до тенантите в канала stable.
Ръчно: make publish-release api=https://hub.entrosity.com/axis [product=connector] [channel=beta] [rollout=20] със зададен
RMM_RELEASE_TOKEN (Make цели).
Изтегляне на издание
Изтегляне до всяко издание записва неговия MSI като
rmm-<компонент>-<версия>.msi (например за ръчно инсталиране на конектор).
Всяко натискане иска нова връзка, валидна един час; черновите могат да се
изтеглят, след като MSI е качен. Изтеглят само глобални администратори
(GET /admin/agent-releases/{id}/download, не и токенът за издания), и
всяко изтегляне се записва в одитния журнал като release.download.
Как обновленията достигат до устройствата
На една инсталация се предлага издание, когато са изпълнени всички тези условия:
- тенантът ѝ е активен, а изданието е най-новото публикувано в канала на тенанта (тенантите в канала beta виждат и beta изданията);
- тя работи с по-стара версия;
- нейната група за пускане (стабилен хеш на нейното ID, 0–99) е под процента на пускане на изданието;
- няма задача за обновяване в ход и през последния час не ѝ е предлагана тази версия.
Предложенията се правят, когато агентът се свърже, и от фонова задача на
всеки пет минути. Локалните компилации (версия dev или с метаданни за
компилацията, например 1.0.0-dev+abc) никога не се обновяват; dev
компилациите от CI (0.1.<run>-dev.<commit>) се обновяват.
RMM_MIN_AGENT_VERSION: инсталациите, по-стари от тази версия,
получават най-новото издание веднага, без да се взема предвид процентът
на пускане. Задайте я след корекция на сигурността.
Какво прави устройството
- Проверява Ed25519 подписа на изданието спрямо публичния ключ,
вграден в неговата компилация. Компилация без ключ отговаря с
update_unsigned; при невалиден подпис — сsignature_invalid. Нищо не се изтегля, преди подписът да бъде потвърден. - Изтегля MSI файла и проверява неговия размер и SHA-256.
- Предава инсталирането на еднократна планирана задача, изпълнявана като
SYSTEM (
RMMAgentUpdate/RMMConnectorUpdate), и докладва scheduled. - Задачата инсталира MSI файла, след което наблюдаващ процес (watchdog) проверява дали услугата работи и дали продължава да работи 60 секунди по-късно. В противен случай преинсталира предишния MSI файл (връщане към предишната версия (rollback)).
- След рестартиране агентът докладва
agent_updatedилиupdate_failed.
Възприемане
Графиката adoption (възприемане) показва кои версии работят в цялата инсталация, по компоненти.
Вижте Протокол → Самообновяване и Ротация на ключове → Ключ за подписване на изданията.