Создание и подготовка устройств IoT Edge в масштабе в Linux с помощью симметричного ключа
Область применения: IoT Edge 1.1
Внимание
Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в разделе "Обновление IoT Edge".
В этой статье приведены комплексные инструкции по автоматической подготовке одного или нескольких устройств Linux IoT Edge с помощью симметричного ключа. Вы можете автоматически подготовить устройства Azure IoT Edge с помощью службы подготовки устройств Центр Интернета вещей Azure (DPS). Если вы не знакомы с процессом автоматической подготовки, ознакомьтесь с обзором подготовки, прежде чем продолжить.
Для этого необходимо выполнить следующие задачи:
- Создайте отдельную регистрацию для одного устройства или группы для набора устройств.
- Установка среды выполнения IoT Edge и подключение к Центру Интернета вещей.
Аттестация симметричного ключа — это простой подход к проверке подлинности устройства с помощью экземпляра службы подготовки устройств. Этот метод аттестации представляет возможности программы Hello world для разработчиков, которые не имеют опыта подготовки устройств или строгих требований к безопасности. Аттестация устройства с помощью доверенного платформенного модуля или сертификатов X.509 является более защищенной. Эти способы следует использовать при наличии более строгих требований к безопасности.
Необходимые компоненты
Облачные ресурсы
- Активный Центр Интернета вещей
- Экземпляр службы подготовки устройств Центр Интернета вещей в Azure, связанный с центром Интернета вещей
- Если у вас нет экземпляра службы подготовки устройств, следуйте инструкциям в кратком руководстве по созданию новой службы подготовки устройств Центр Интернета вещей и связыванию центра Интернета вещей и служб подготовки устройств в кратком руководстве по Центр Интернета вещей службе подготовки устройств.
- После запуска службы подготовки устройств скопируйте значение области идентификатора на странице обзора. Это значение используется при настройке среды выполнения IoT Edge.
Требования к устройствам
Физическое или виртуальное устройство Linux, которое должно быть устройством IoT Edge.
Необходимо определить уникальный идентификатор регистрации для идентификации каждого устройства. Можно использовать MAC-адрес, серийный номер или любые уникальные сведения устройства. В этом примере показано, как, используя сочетание MAC-адреса и серийного номера, можно создать следующую строку для идентификатора регистрации: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
. Допустимые символы — буквы нижнего регистра, цифры и дефис (-
).
Создание регистрации в Службе подготовки устройств к добавлению в Центр Интернета вещей
Создайте регистрацию для подготовки одного или нескольких устройств с помощью DPS.
Если вы хотите подготовить одно устройство IoT Edge, создайте отдельную регистрацию. Если требуется подготовка нескольких устройств, выполните действия по созданию регистрации группы DPS.
При создании регистрации в DPS у вас есть возможность объявить начальное состояние двойника устройства. В двойнике устройства можно задать теги для группировки устройств по любой требуемой для решения метрике, например по региону, среде, расположению или типу устройства. Эти теги используются для создания автоматических развертываний.
Дополнительные сведения о регистрации в службе подготовки устройств см. в статье "Управление регистрацией устройств".
Создание индивидуальной регистрации DPS
Совет
Действия, описанные в этой статье, предназначены для портал Azure, но вы также можете создать отдельные регистрации с помощью Azure CLI. Дополнительные сведения см. в разделе az iot dps enrollment. В команде интерфейса командной строки с помощью флага edge-enabled укажите, что регистрация предназначена для устройства IoT Edge.
В портал Azure перейдите к экземпляру службы подготовки устройств Центр Интернета вещей.
В разделе Параметрывыберите Управление регистрациями.
Выберите Добавить отдельную регистрацию и выполните следующие действия для настройки регистрации.
Для параметра Механизм выберите Симметричный ключ.
Укажите уникальный идентификатор регистрации для своего устройства.
При необходимости укажите идентификатор устройства в Центре Интернета вещей. Идентификаторы устройств можно использовать, чтобы указать отдельное устройство для развертывания модуля. Если не указать идентификатор устройства, используется идентификатор регистрации.
Выберите значение True, чтобы указать, что это регистрация устройства IoT Edge.
При необходимости добавьте значение тега в параметр Первоначальное состояние двойника устройства. Теги можно использовать для указания групп устройств для развертывания модуля. Например:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Выберите Сохранить.
Скопируйте значение параметра Первичный ключ индивидуальной регистрации, чтобы использовать его при установке среды выполнения IoT Edge.
После создания регистрации для устройства среда выполнения IoT Edge может автоматически подготавливать устройство во время установки.
Установка Edge Интернета вещей
В этом разделе описана подготовка виртуальной машины Linux или физического устройства для IoT Edge. Затем установите IoT Edge.
Выполните следующие команды, чтобы добавить репозиторий пакетов, а затем добавить ключ подписи пакета Майкрософт в список доверенных ключей.
Внимание
30 июня 2022 года Raspberry Pi OS Stretch вышел из списка поддержки ОС уровня 1. Чтобы избежать потенциальных уязвимостей системы безопасности, обновите операционную систему узла до Bullseye.
Установка может выполняться с помощью нескольких команд. Откройте терминал и выполните следующие команды:
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
18.04:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Примечание.
Использование программных пакетов Azure IoT Edge регулируется условиями лицензии, содержащейся в самих пакетах (в usr/share/doc/{package-name}
или в каталоге LICENSE
). Прежде чем использовать пакет, ознакомьтесь с условиями лицензии. Установка и использование пакета означают, что вы принимаете эти условия. Если вы с ними не согласны, не используйте пакет.
Установка платформы контейнеров
Служба Azure IoT Edge использует среду выполнения контейнера, совместимую с OCI. В рабочих сценариях рекомендуется использовать подсистему Moby. Модуль Moby является единственным обработчиком контейнеров, официально поддерживаемым IoT Edge. Образы контейнеров Docker (Community Edition или Enterprise Edition) совместимы со средой выполнения Moby.
Установите модуль Moby.
sudo apt-get update; \
sudo apt-get install moby-engine
После успешной установки подсистемы Moby настройте его для использования local
драйвера ведения журнала в качестве механизма ведения журнала. Дополнительные сведения о настройке ведения журнала см . в контрольном списке развертывания рабочей среды.
Создайте или откройте файл
/etc/docker/daemon.json
конфигурации управляющей программы Docker.Задайте драйвер ведения журнала по умолчанию драйверу
local
ведения журнала, как показано в приведенном ниже примере.{ "log-driver": "local" }
Перезапустите обработчик контейнеров, чтобы изменения вступили в силу.
sudo systemctl restart docker
Совет
Если при установке подсистемы контейнеров Moby возникают ошибки, проверьте совместимость ядра Linux для Moby. Некоторые производители встраиваемых устройств поставляют образы устройств, которые содержат нестандартные ядра Linux, без функций, необходимых для совместимости с обработчиком контейнеров. Выполните следующую команду, которая использует скрипт check-config, предоставленный Moby, для проверки конфигурации ядра:
curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh chmod +x check-config.sh ./check-config.sh
Просмотрите выходные данные скрипта и убедитесь, что в разделах
Generally Necessary
иNetwork Drivers
включены все элементы. Если отсутствуют функции, включите их, перестроив ядро из источника и выбрав связанные модули для включения в соответствующую конфигурацию ядра. Аналогичным образом, если вы используете генератор конфигурации ядра, напримерdefconfig
илиmenuconfig
, найдите и включите соответствующие функции и перестроите ядро соответствующим образом. После развертывания нового измененного ядра запустите скрипт check-config еще раз, чтобы убедиться, что все необходимые функции были успешно включены.
Установка среды выполнения IoT Edge
Управляющая программа безопасности IoT Edge обеспечивает безопасность и соответствие стандартам безопасности на устройстве IoT Edge. Управляющая программа запускается при каждой загрузке устройства и перезагружает устройство, запуская остальные компоненты среды выполнения IoT Edge.
Действия, описанные в этом разделе, представляют типичный процесс установки последней версии на устройстве, подключенном к Интернету. Если необходимо установить определенную версию, например предварительную версию или установить ее в автономном режиме, следуйте инструкциям по установке автономной или конкретной версии, приведенным далее в этой статье.
Установите IoT Edge версии 1,1.* вместе с пакетом libiothsm-std:
sudo apt-get update; \
sudo apt-get install iotedge
Примечание.
IoT Edge версии 1.1 является ветвью долгосрочной поддержки IoT Edge. Если вы используете более раннюю версию, рекомендуем установить последнее исправление или выполнить обновление до него, так как более старые версии больше не поддерживаются.
Предоставление облачного удостоверения устройству
После установки среды выполнения на устройстве настройте устройство с информацией, которую он использует для подключения к службе подготовки устройств и Центр Интернета вещей.
Подготовьте следующие сведения:
- Значение области идентификаторов DPS.
- Созданный идентификатор регистрации устройства.
- Введите первичный ключ, полученный при индивидуальной регистрации, или производный ключ в случае групповой регистрации устройств.
Откройте файл конфигурации на устройстве IoT Edge.
sudo nano /etc/iotedge/config.yaml
Найдите в нем раздел конфигурации подготовки. Раскомментируйте строки для подготовки DPS с симметричным ключом и убедитесь, что все остальные строки подготовки закомментированы.
Строка
provisioning:
не должна содержать предшествующих пробелов, а вложенные элементы должны иметь отступ в два пробела.# DPS TPM provisioning configuration provisioning: source: "dps" global_endpoint: "https://global.azure-devices-provisioning.net" scope_id: "PASTE_YOUR_SCOPE_ID_HERE" attestation: method: "symmetric_key" registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE" symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" # always_reprovision_on_startup: true # dynamic_reprovisioning: true
Обновите значения параметров
scope_id
,registration_id
иsymmetric_key
с помощью сведений о DPS и устройстве.При необходимости используйте строки
always_reprovision_on_startup
илиdynamic_reprovisioning
для настройки поведения повторной подготовки устройства. Если устройство настроено для повторной подготовки при запуске, оно всегда будет пытаться выполнить подготовку сначала с помощью DPS, а затем обратится к резервному методу подготовки при сбое. Если устройство настроено для динамической повторной подготовки, IoT Edge (и все модули) перезапустится и перепроименуется, если обнаружено событие повторной подготовки, например, если устройство перемещается из одной Центр Интернета вещей в другую. В частности, IoT Edge проверяет наличиеbad_credential
илиdevice_disabled
ошибки из пакета SDK для обнаружения события повторной подготовки. Чтобы активировать это событие вручную, отключите устройство в Центр Интернета вещей. Дополнительные сведения см. в разделе Основные понятия повторной подготовки устройств в Центре Интернета вещей.Перезапустите среду выполнения IoT Edge, чтобы активировать все изменения конфигурации, внесенные на устройстве.
sudo systemctl restart iotedge
Проверка установки
Если среда выполнения запущена успешно, можете перейти в Центр Интернета вещей и начать развертывание модулей IoT Edge на устройстве.
Можно проверить, используется ли отдельная регистрация, созданная в службе подготовки устройств. Перейдите к экземпляру службы подготовки устройств в портал Azure. Откройте сведения о регистрации для созданной индивидуальной регистрации. Обратите внимание, что регистрация имеет состояние назначено и указан идентификатор устройства.
Чтобы убедиться, что IoT Edge установлена и запущена успешно, выполните следующие команды на устройстве.
Проверьте состояние службы IoT Edge.
systemctl status iotedge
Проверьте журналы службы.
journalctl -u iotedge --no-pager --no-full
Просмотрите список запущенных модулей.
iotedge list
Следующие шаги
Процесс регистрации службы подготовки устройств позволяет задать идентификатор устройства и теги двойников устройств одновременно, когда вы подготавливаете новое устройство. Эти значения можно использовать для указания отдельных устройств или групп устройств с помощью автоматического управления устройствами. См. дополнительные сведения о развертывании и мониторинге модулей IoT Edge с поддержкой масштабирования с помощью портала Azure или Azure CLI.