Autoprovision-2.4
О продукте
Система автоматического обеспечения (Autoprovision, сокр. AuP) предназначена для автоматизированной настройки конфигурации и обновления ПО телекоммуникационных устройств.
В отличие от версий 1.0, текущая реализация поставляется в Docker-контейнерах.
Система AuP состоит из набора сервисов, таких как:
- Core — основа системы, в которой заключена логика управления и взаимодействия с остальными сервисами, проверяет права на исполнение API-методов и обрабатывает их вызовы, поставляет конфигурационные параметры в сервис управления конфигурациями, хранит их историю, осуществляет интеграцию с ECSS.
- Device Adapter (DA)-интерфейс — сервис для взаимодействия с оборудованием. Служит для обслуживания запросов от устройств, отправляет готовые конфигурационные файлы, файлы ПО с последующим обновлением и другие необходимые данные. Поддерживает перечень протоколов:
- HTTP;
- HTTPS;
- TFTP (использовать исключительно для Cisco);
- WS/WSS/MQTT — сейчас не используется, зарезервировано для будущих интеграций.
- WEB Backend (BFF) — сервис для взаимодействия с пользователем. Обеспечивает функции аутентификации и авторизации пользователей, выполняет обращения к Core.
- Configuration Properties Graph (CPG/Node-RED) — сервис, обеспечивающий графический интерфейс и функции для управления и конструирования конфигураций устройств.
- WEB Frontend (Веб-сервер NginX) — сервис проксирует статические ресурсы веб-интерфейса и CPG.
- Identity Provider (IdP/Keycloak) — сервис, обеспечивающий хранение пользовательских данных, групп, ролей и привилегий. Имеет возможность синхронизации пользователей LDAP/AD. Производит аутентификацию и авторизацию пользователей, генерирует токены доступа, представляет интерфейс учетных данных пользователей.
- S3 Storage (Minio) — объектное хранилище, обеспечивающее хранение ресурсов, которыми оперирует AuP.
Рисунок 1 — Схема AuP
Глоссарий
- Устройство — объект, над которым выполняются манипуляции конфигурирования. По типам устройства подразделяются на "физические" и "виртуальные".
- Физическое устройство — устройство, опознанное системой как физическое по обмену между ТА и AuP. После регистрации физическим устройством может стать любое виртуальное.
- Виртуальное устройство — устройство, которое было создано внутри системы для дальнейшего подключения физических устройств при помощи "Информации о регистрации устройств (DRI)".
- Device Registration Information (DRI) — набор параметров, определяющих настройки физических устройств для работы с системой Autoprovision, закодированный в формат, специфичный для конкретного типа устройств. (QR-код или др.).
- Device Registration Token (DRT) — используется для сопоставления физического и виртуального устройств на этапе регистрации.
- Метод обслуживания — устройство обслуживается с помощью одного из четырех методов:
- Конфигурация (Configuration) — будут обрабатываться только запросы, относящиеся к категории конфигураций;
- Файлы ПО (Firmware) — будут обрабатываться только запросы на обновления ПО;
- Конфигурация и файлы ПО (Configuration and firmware) — будут обрабатываться запросы и Configuration, и Firmware;
- Не обслуживается (Ignore) — любые запросы от устройства игнорируются системой.
- Конфигурация (Configuration) — будут обрабатываться только запросы, относящиеся к категории конфигураций;
- Контекст устройства — внутренняя структура данных, которая представляет собой информацию устройства, является основой для создания конфигураций устройств.
Пример контекста устройства
{
"ctx": {
"device_uuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45", - Идентификатор устройства
"device_ctx": {
"account": [{ - Секция аккаунтов
<------------------------------------- параметры открытого списка аккаунта --------------------------------------->
"accountAdditionalInfo": {
"sip_server_port": {
"insertedAt": "2022-08-26 07:04:06",
"key": "sip_server_port",
"updatedAt": "2022-08-26 07:04:06",
"uuid": "30e6a54e-2409-4812-ab46-928ed72b2b0b",
"value": "5090" - Значение параметра "sip_server_port"
},
>------------------------------------- ... -------------------------------- --------------------------------------<
"password": {
"insertedAt": "2022-08-26 07:04:06",
"key": "password",
"updatedAt": "2022-08-26 07:04:06",
"uuid": "22ddd7fe-aa80-4165-bc08-535b47efae69",
"value": "123" - Значение параметра "password"
}
},
<------------------------------------- параметры аккаунта -------------------------------------------------------->
"accountTag": {}, - Список тегов (меток) аккаунта
>------------------------------------- ... -------------------------------- --------------------------------------<
"uuid": "76beb08e-2120-46dd-b983-c25aacd845d7" - Идентификатор аккаунта
}],
<------------------------------------- список конфигураций, сформированных для устройства ------------------------>
"configuration": [{ - Список конфигураций
"deviceUuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"insertedAt": "2022-08-31 03:24:10",
"updatedAt": "2022-08-31 03:24:10",
"uuid": "c226fcbf-4e14-4ad1-9847-4d8afe93f9d2",
"value": "{\"configuration\":{\"nodes_configuration\":[{\"node\":\"\",\"properties\":[]}],\"prop_map\":{}},\"format\":\"v1\"}"
},
>------------------------------------- ... -------------------------------- --------------------------------------<
{
"deviceUuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"insertedAt": "2022-08-31 03:24:46",
"updatedAt": "2022-08-31 03:24:46",
"uuid": "dc887514-7e08-451d-8a7d-fbaf9578f4d5",
"value": "{\"configuration\":{\"nodes_configuration\":[{\"node\":\"\",\"properties\":[]}],\"prop_map\":{}},\"format\":\"v1\"}"
}],
<------------------------------------- параметры устройства ------------------------------------------------------->
"descriptions": [],
"deviceAdditionalInfo": {
"device_adapter": { - секция содержит описание Device Adapter, с которым работает ТА
"deviceUuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"insertedAt": "2022-08-26 07:05:35",
"key": "device_adapter",
"updatedAt": "2022-08-26 07:05:35",
"uuid": "77cf0314-c611-4cb4-aad2-5a96b8aaf0f4",
"value": "ecss_aup_device_adapter"
}
},
"deviceAlias": [{ - содержит описание параметров, ip-адрес и mac-адрес устройства
"deviceUuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"insertedAt": "2022-08-26 07:05:35",
"ip": "192.168.116.167",
"mac": "80:5e:c0:43:89:13",
"updatedAt": "2022-08-26 07:05:35",
"uuid": "a9b1d408-d285-4b25-99c1-753d7cabd1a4"
}],
"deviceTag": {}, - список тегов устройства
<------------------------------------- список файлов, запрошенных устройством ------------------------------------->
"fileRequest": [{
"deviceUuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"fileName": "/805ec0438913.boot",
"fileRequestTags": [],
"fileType": "ignore",
"insertedAt": "2022-08-26 07:05:35",
"lastRequestDatetime": "2022-09-05 04:35:12Z",
"productionMethod": "{\"response\":{\"payload\":null,\"status\":403}}",
"registerDatetime": "2022-04-28 08:23:26Z",
"requestInfo": "{\"method\":\"GET\",\"scheme\":[\"http\",\"tftp\"]}",
"updatedAt": "2022-09-05 04:35:19",
"uuid": "e20bb7c5-63d0-4dfd-a6f6-2903707d9d41"
},
>------------------------------------- ... -------------------------------- --------------------------------------<
{
"deviceUuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"fileName": "/firmware.rom",
"fileRequestTags": [],
"fileType": "firmware",
"insertedAt": "2022-08-26 07:05:35",
"lastRequestDatetime": "2022-08-26 07:03:51Z",
"productionMethod": "{}",
"registerDatetime": "2022-08-24 07:58:20Z",
"requestInfo": "{\"method\":\"GET\",\"scheme\":[\"http\"]}",
"updatedAt": "2022-08-26 07:05:35",
"uuid": "76f157f9-cdee-445b-aa0f-8f45e3e6b454"
}],
<------------------------------------- информация об устройстве -------------------------------------------------->
"firmwareInfo": "53.84.14.7", - текущая версия ПО устройства
"insertedAt": "2022-08-26 07:05:35",
"lastRequestDatetime": "2022-09-05 04:35:12Z",
"model": "SIP-T19P_E2", - модель, которую анонсировало устройство
"name": null,
"provide": "U", - метод обслуживания
"registerDatetime": "2022-04-28 08:23:26Z",
"type": "VOIP_PHONE",
"updatedAt": "2022-09-05 04:35:19",
"uuid": "0a24bfd8-c655-4a98-9ad1-b735bad3cf45",
"vendor": "YealinkX", - производитель, которого анонсирует устройство
"virtual": false
},
"inject_payload": 1662352655267,
"nodes_config": []
}
}
PY
- Конфигурация — совокупность параметров, характерных для конкретного устройства, определенная в формате файла или группы файлов.
- Параметр конфигурации — представляет собой настройки, которые коррелируют с опциями на настраиваемом устройстве. Семантически параметры представлены в доменной нотации, логически сгруппированные по функциональному признаку.