Сервис представляетс собой GRPC API на основе JAVA. Предоставляет CRUD операции к базе данных индивидуальных конфигураций OTT устройств (ESR-10) - создание, редактирование, удаление.
Сервис может запускаться на отдельном сервере. Для его запуска требуется Java 8 и выше (в ходе разработки была проверена работоспособность сервера на Java 11). По умолчанию сервис работает на порту 50051 (стандартный порт GRPC).
Файл конфигурации (в формате HOCON) находится /etc/eltex-jerry/application.conf.
В конфигурации настраивается взаимодействие с MongoDB и порт, на котором работает сервис Jerry (в случае, если MongoDB работает на отдельном хосте - надо не забыть исправить дефолтные настройки).
jerry { mongo { # mongodb connection uri # default: "mongodb://localhost:27017/jerry" uri = "mongodb://localhost:27017/jerry" } service { # the port to listen gRPC on # default: 50051 port = 50051 } } |
Логи находятся в файле /var/log/eltex-jerry/main.log
Со стороны EMS настройка взаимодействия c Jerry осуществляется "Администрирование" → "Настройка сервера" → "Системные модули" → "Wireless common" в разделе "Доступ к сервису индивидуальных конфигураций OTT(jerry)":
Список файлов конфигурации редактируется в Wireless - Менеджер правил инициализации - ОТТ индивидуальная конф. Уникальным идентификатором конфигурации является сочетание Тип-Имя. Это нужно, чтобы иметь возможность создать инидивидуальную конфигурацию для разных типов устройств под одним именем и потом привязать ее к одной привязке инициализации, которая, как известно, не несет в себе тип устройства. Тип устройства берется из трапа в момент обнаружения устройства.
В параметры привязки инициализации (в базе EMS) сохраняется только имя индивидуальной конфигурации.
База данных Jerry это MongoDB GridFS, в которой хранятся конфигурации в виде файлов в том формате, который используется на конкретном устройстве. При обращении устройства на сервис активатор содаржимое индивидуальной конфигурации добавляется в ответ устройству в виде JSON (файл строка за строкой сохраняется в том виде, в котором его ожидает устройство).
Пример ответа Сервис-Активатора для ESR-10. ESR-10 ожидает последовательность команд ESR CLI в виде JSON array в параметре cli. Все команды последовательно применяются на устройстве.
"code": 0, "msg": "OK", "ipsec": { "remote-gateway": "40.40.40.40", "xauth-password": "A4eCP3KnxqfXuLFIuglv1KpQ", "xauth-user": "a8:f9:4b:b2:48:e0", "auth-alg": "md5", "dh-group": 1, "dpd-delay": 60, "encrypt-alg": "aes", "force-establish": "up", "gre-mode": "up", "gre-mtu-offset": 148, "lifetime": 86400, "mode-cfg": "up", "nat": "up", "nat-keepalive": 30, "password": "123456789", "pfs-group": 0, "sa-auth-alg": "md5", "sa-encrypt-alg": "aes", "sa-lifetime": 3600, "status": "up", "use-xauth-passwd": "off", "gre-ping-counter": 3 }, "ipsec-activator": { "wait-timer": 30, "update-time": 120 }, "fw-check-crt": null, "cli": [ "hostname ESR-VIRA", "system fan-speed auto", "syslog console debug", "object-group network server_COA", "ip address-range 192.168.26.206", "exit" ] |
Установка сервиса Jerry: apt-get install eltex-jerry
Рекомендуется установка на одном сервере с EMS.