Преминете към основното съдържание

Издания на агента

Агентите и конекторите се обновяват сами от изданията, публикувани на сървъра. Те се управляват в Admin → Agent releases.

Публикуване на издание​

В портала, в раздела Publish a release:

ПолеЗначение
Componentagent или connector.
VersionСемантична версия, например 1.2.0. Всяка версия може да бъде издадена само веднъж (release_exists).
ChannelStable или 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 компилация.

Dev компилациите отиват в канала stable до 1.0.0

Докато не бъде поставен етикет 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: инсталациите, по-стари от тази версия, получават най-новото издание веднага, без да се взема предвид процентът на пускане. Задайте я след корекция на сигурността.

Какво прави устройството​

  1. Проверява Ed25519 подписа на изданието спрямо публичния ключ, вграден в неговата компилация. Компилация без ключ отговаря с update_unsigned; при невалиден подпис — с signature_invalid. Нищо не се изтегля, преди подписът да бъде потвърден.
  2. Изтегля MSI файла и проверява неговия размер и SHA-256.
  3. Предава инсталирането на еднократна планирана задача, изпълнявана като SYSTEM (RMMAgentUpdate / RMMConnectorUpdate), и докладва scheduled.
  4. Задачата инсталира MSI файла, след което наблюдаващ процес (watchdog) проверява дали услугата работи и дали продължава да работи 60 секунди по-късно. В противен случай преинсталира предишния MSI файл (връщане към предишната версия (rollback)).
  5. След рестартиране агентът докладва agent_updated или update_failed.

Възприемане​

Графиката adoption (възприемане) показва кои версии работят в цялата инсталация, по компоненти.

Вижте Протокол → Самообновяване и Ротация на ключове → Ключ за подписване на изданията.