Kaspersky IoT Secure Gateway 1000 SDK позволяет создавать и использовать в Kaspersky IoT Secure Gateway 1000 наборы команд KDS. Наборы команд KDS разрабатываются на языке программирования Python и позволяют использовать API программ ConfigManager и PackageManager – программы, предназначенной для работы с KPA-пакетами и другими программами в Kaspersky IoT Secure Gateway 1000. Запуск наборов команд KDS осуществляется с помощью службы отладки KDS. Вы можете привязать любой набор команд KDS к образу Kaspersky IoT Secure Gateway 1000 с помощью команды kosctl playbook set-effective или запустить вручную во время работы Kaspersky IoT Secure Gateway 1000 с помощью команды kosctl play.
Наборы команд KDS в составе Kaspersky IoT Secure Gateway 1000 SDK
Обратите внимание: при разработке собственных программ вам может потребоваться внести изменения в готовые наборы команд KDS. Для этого вы можете подставить требуемые значения в файлы рядом с комментариями, содержащими текст ... Specify this ....
Готовые наборы команд KDS содержатся в директории /opt/KasperskyOS-SDK-KISG-Platform-<version>/examples/secure_gateway/sdkl3/playbooks:
common.py – устанавливает значения переменных окружения, которые используются в других наборах команд KDS. В этом наборе команд KDS устанавливаются значения следующих переменных:PM_CONFIG – набор параметров программы PackageManager.SG_CONFIGS_DIR – путь хранения установленных конфигураций на устройстве.SG_APP_CA_CERT_PATH – путь хранения корневого сертификата программ на устройстве.SG_SECURE_STORAGE_DB_PATH – путь хранения файла базы данных защищенного хранилища на устройстве.SG_CERT_INFO – шаблон для хранения файлов сертификатов.PRODUCT_INFO_CONFIG_NAME – имя файла конфигурации c информацией о продукте.WEB_SERVER_CONFIG_NAME – имя файла конфигурации с информацией о сертификатах и настройками журналирования для TLS-соединений.DELIMETER_LINE – разделительная линия для журнала.TMP_DIR_NAME – имя директории для хранения временных файлов на локальном компьютере.configure_applications.py – применяет конфигурации программ, указанных в переменной словаре APP_CONFIGS. Конфигурации применяются только для установленных в Kaspersky IoT Secure Gateway 1000 программ.reboot.py – отправляет команду на перезагрузку Kaspersky IoT Secure Gateway 1000.set_app_ca_cert.py – копирует и устанавливает корневой сертификат для программ.set_log_levels_for_apps.py – применяет указанный уровень журналирования для установленных в Kaspersky IoT Secure Gateway 1000 программ.set_system_configs.py – устанавливает системную конфигурацию Kaspersky IoT Secure Gateway 1000, используя файлы по пути, указанному в переменной SYSTEM_CONFIGS_DIR. Набор команд не предназначен для установки конфигураций программ.Работа с конфигурациями
Для доступа к API программы ConfigManager требуется создать объекты взаимодействия:
kos.cfg_manager.CreateDynamicConfigManagerProxy({}).kos.secure_gateway.AppConfig.CreateAppConfig().Используя полученные объекты взаимодействия, вы можете вызывать методы GetConfig() и SetConfig() программы ConfigManager для получения и изменения конфигурации.
Получение информации об установленных программах
Для доступа к API программы PackageManager требуется создать объект взаимодействия, вызвав метод kos.pkg_mgr.PkgMgr.CreatePackageManager(<PkgMgrConfig>).GetPackageController(), где PkgMgrConfig – структура с набором параметров программы PackageManager. Используя полученный объект взаимодействия, вы можете вызывать метод ListInstalledPackages() программы PackageManager, позволяющий получить список программ, установленных в Kaspersky IoT Secure Gateway 1000.
Управление параметрами запуска программ
Для доступа к API управления параметрами запуска программ требуется создать объект взаимодействия, вызвав метод kos.secure_gateway.Launcher.CreateLauncherProxy(). Используя полученный объект взаимодействия, вы можете использовать методы GetAppsStartupSettings() – для получение параметров запуска программ и SetAppsStartupSettings(<параметры>) – для установки параметров запуска программ, где параметры – структура, содержащая параметры запуска программ.
Запись в журнал событий kosctl
Вы можете импортировать переменную log из модуля kosctl.common.logger, которая упрощает процедуру журналирования. После импорта вам станут доступны вызовы функций log.debug(), log.info(), log.warning() и log.error(), которые выполняют запись сообщений в журнал с соответствующим уровнем. Эти сообщения не будут записаны в журнал событий Kaspersky IoT Secure Gateway 1000.