Руководство. Работа с Обновлением устройств для Центра Интернета вещей Azure: использование агента пакетов в Ubuntu Server 18.04 x64
Обновление устройств для Центра Интернета вещей Azure поддерживает обновления на основе образов, пакетов и скриптов.
Обновления на основе пакетов являются целевыми и изменяют только конкретный компонент или приложение на устройстве. Благодаря этому меньше используется пропускная способность, а также ускоряются процессы скачивания и установки обновления. Обновления на основе пакетов, как правило, также позволяют сократить время простоя обновляемых устройств и избежать расходов, связанных с созданием образов. Они используют Манифест APT, который предоставляет агенту Обновления устройств сведения, необходимые для загрузки и установки пакетов, указанных в файле манифеста APT (а также их зависимостях) из указанного репозитория.
В этом руководстве описано, как обновить Azure IoT Edge на сервере Ubuntu 18.04 x64 с помощью агента пакета Обновления устройств. Хотя в руководстве показано, как обновить IoT Edge, эту процедуру можно использовать для обновления других пакетов, например обработчика контейнера, который он использует.
Средства и основные понятия в этом руководстве применяются, даже если вы планируете использовать другую конфигурацию платформы ОС. Дочитайте описание процесса обновления. Затем выберите предпочтительный способ обновления и платформу ОС, чтобы узнать больше.
Из этого руководства вы узнаете, как выполнять следующие задачи:
- Скачивание и установка агента Обновления устройств и его зависимостей.
- Добавление тега к устройству.
- Импорт обновлений.
- Создание группы устройств.
- Развертывание обновления пакета.
- Мониторинг развертывания обновления.
Предварительные требования
Если вы еще это не сделали, создайте учетную запись и экземпляр Обновления устройств. Настройте центр Интернета вещей.
Вам потребуется строка подключения для устройства IoT Edge.
Если вы использовали руководство по агенту симулятора для предварительного тестирования, выполните следующую команду, чтобы вызвать обработчик APT и развернуть беспроводные обновления пакетов для этого руководства.
# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
Подготовка устройства
Подготовьте устройство автоматически или вручную.
Использование кнопки автоматического развертывания в Azure
Для удобства в этом руководстве используется шаблон Azure Resource Manager на основе cloud-init, который поможет быстро настроить виртуальную машину LTS Ubuntu 18.04. Он устанавливает как среду выполнения Azure IoT Edge, так и агент пакета Обновления устройств. Затем он автоматически настраивает устройство с помощью сведений о подготовке, используя строку подключения устройства для предоставленного устройства IoT Edge (предварительное требование). Шаблон Resource Manager также позволяет избежать необходимости запускать сеанс SSH для завершения установки.
Чтобы начать работу, нажмите кнопку.
Заполните доступные текстовые поля.
- Подписка. Активная подписка Azure для развертывания виртуальной машины.
- Группа ресурсов. Существующая или только что созданная группа ресурсов, содержащая виртуальную машину и связанные с ней ресурсы.
- Регион.Географический регион для развертывания виртуальной машины. По умолчанию это значение равно расположению выбранной группы ресурсов.
- Префикс метки DNS. Необходимое значение, которое используется для добавления префикса имени узла виртуальной машины.
- Имя пользователя администратора. Имя пользователя, которому при развертывании предоставляются привилегии суперпользователя.
- Строка подключения устройства.Строка подключения для устройства, созданного в предполагаемом центре Интернета вещей.
- Размер виртуальной машины.Размер развертываемой виртуальной машины.
- Версия ОС Ubuntu. Версия операционной системы Ubuntu, устанавливаемая на базовую виртуальную машину. Оставьте значение по умолчанию без изменений, так как оно уже будет задано в Ubuntu 18.04-LTS.
- Тип проверки подлинности. Выберите sshPublicKey или пароль в зависимости от ваших предпочтений.
- Пароль или ключ администратора. Значение открытого ключа SSH или значение пароля в зависимости от выбранного типа проверки подлинности.
После заполнения всех полей установите флажок в нижней части страницы, чтобы принять условия. Щелкните Приобрести, чтобы начать развертывание.
Убедитесь, что развертывание выполнено успешно. Подождите несколько минут после развертывания, чтобы дать процессам после установки и настройки завершить установку IoT Edge и агента пакета Обновления устройств.
Ресурс виртуальной машины должен быть развернут в выбранной группе ресурсов. Запишите имя компьютера в формате
vm-0000000000000
. Кроме того, запишите связанное DNS-имя в формате<dnsLabelPrefix>
.<location>
.cloudapp.azure.com.DNS-имя указано в разделе Обзор развернутой виртуальной машины на портале Azure.
Совет
Чтобы после завершения установки подключиться к этой виртуальной машине по протоколу SSH, используйте соответствующее DNS-имя с помощью команды
ssh <adminUsername>@<DNS_Name>
.Откройте сведения о конфигурации (см. инструкции по настройке файла конфигурации с помощью приведенной ниже команды. Задайте для параметра connectionType значение "AIS", а для connectionData — пустую строку.
/etc/adu/du-config.json
- Перезапустите агент Обновления устройств, выполнив следующую команду.
sudo systemctl restart adu-agent
На программные пакеты Обновления устройств для Центра Интернета вещей Azure распространяются условия следующих лицензий:
- Лицензия на Обновление устройств для Центра Интернета вещей
- Клиентская лицензия на оптимизацию доставки
Прочтите условия лицензионного соглашения перед использованием пакета. Установка и использование пакета означают, что вы принимаете эти условия. Если вы с ними не согласны, не используйте пакет.
Подготовка устройства вручную
Как и в случае с автоматической настройкой с помощью скрипта cloud-init, для установки и настройки устройства необходимо выполнить вручную следующие действия, чтобы подготовить физическое устройство.
Следуйте инструкциям из статьи Установка среды выполнения Azure IoT Edge.
Примечание
Агент Обновления устройств не зависит от IoT Edge. Но он использует управляющую программу службы идентификации Интернета вещей, которая устанавливается вместе с IoT Edge (версия 1.2.0 и выше) для получения удостоверения и подключения к Центру Интернета вещей.
Хотя управляющая программа службы идентификации Интернета вещей не рассматривается в этом руководстве, ее можно установить изолированно на устройствах Интернета вещей под управлением Linux. Последовательность установки имеет большое значение. Агент пакета Обновления устройств необходимо устанавливать после службы идентификации Интернета вещей. В противном случае агент пакета не будет зарегистрирован как авторизованный компонент для установления подключения к Центру Интернета вещей.
Установите DEB-пакеты агента Обновления устройств.
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
Введите основную строку подключения модуля вашего устройства IoT (или устройства, в зависимости от того, как вы подготовили устройство с помощью Обновления устройств) в файле конфигурации, выполнив следующую команду.
/etc/adu/du-config.json
Перезапустите агент Обновления устройств, выполнив следующую команду.
sudo systemctl restart adu-agent
На программные пакеты Обновления устройств для Центра Интернета вещей Azure распространяются условия следующих лицензий:
- Лицензия на Обновление устройств для Центра Интернета вещей
- Клиентская лицензия на оптимизацию доставки
Прочтите условия лицензионного соглашения перед использованием пакета. Установка и использование пакета означают, что вы принимаете эти условия. Если вы с ними не согласны, не используйте пакет.
Добавление тега на устройство
Войдите на портал Azure и перейдите в центр Интернета вещей.
На левой панели в разделе Устройства найдите устройство IoT Edge и перейдите к двойнику устройства или двойнику модуля.
В двойнике модуля агента Обновления устройств удалите все существующие значения тегов обновления устройства, присвоив им значение NULL. Если вы используете удостоверение устройства с агентом Обновления устройств, внесите эти изменения в двойник устройства.
Добавьте новое значение тега Обновления устройств, как показано ниже.
"tags": { "ADUGroup": "<CustomTagValue>" },
Импорт обновления
Перейдите на страницу выпусков Обновления устройств в GitHub и щелкните раскрывающийся список Assets (Ресурсы). Выберите
Tutorial_IoTEdge_PackageUpdate.zip
для скачивания. Извлеките содержимое папки, чтобы обнаружить пример манифеста APT (sample-1.0.2-aziot-edge-apt-manifest.json) и соответствующий манифест импорта (sample-1.0.2-aziot-edge-importManifest.json).Войдите на портал Azure и перейдите в свой центр Интернета вещей с Обновлением устройств. В области слева в разделе Автоматическое управление устройствами выберите Обновления.
Откройте вкладку Обновления.
Выберите + Импортировать новое обновление.
Щелкните + Выбрать из контейнера хранилища. Выберите существующую учетную запись или создайте новую, щелкнув + Учетная запись хранения. Затем выберите существующий контейнер или создайте новый, щелкнув + Контейнер. Этот контейнер будет использоваться для размещения файлов обновления для импорта.
Примечание
Мы рекомендуем использовать новый контейнер каждый раз при импорте обновления, чтобы избежать случайного импорта файлов из предыдущих обновлений. Если вы не будете использовать новый контейнер, обязательно удалите все файлы из существующего контейнера, прежде чем завершить этот шаг.
В контейнере щелкните Отправка и перейдите к файлам, скачанным на шаге 1. Выбрав все файлы обновления, щелкните Отправить. Затем щелкните Выбрать, чтобы вернуться на страницу Импорт обновления.
На этом снимке экрана показан шаг импорта. Имена файлов могут не совпадать с именами, которые используются в примере.
На странице Импорт обновления проверьте импортируемые файлы. Затем щелкните Импорт обновления, чтобы начать процесс импорта.
Начнется процесс импорта, а на экране появится раздел Журнал импорта. Если столбец Состояние указывает на то, что импорт успешно выполнен, выберите заголовок Доступные обновления. Импортированное обновление должно появиться в списке.
См. дополнительные сведения об импорте обновлений.
Создание группы обновлений
Откройте вкладку Группы и развертывания в верхней части страницы.
Нажмите кнопку Добавить группу, чтобы создать новую группу.
Выберите тег Центр Интернета вещей и укажите класс устройства в списке. Затем выберите Создать группу.
После создания группы вы увидите, что схема соответствия обновлений и список групп обновлены. На схеме соответствия обновлений требованиям отображается количество устройств в разных состояниях соответствия: При последнем обновлении, Доступны новые обновления и Выполняющиеся обновления. Подробнее о соответствии обновлений.
Вы должны увидеть только что созданную группу и все доступные обновления для устройств в новой группе. Если есть устройства, которые не соответствуют требованиям группы к классу устройств, они отображаются в соответствующей недопустимой группе. Чтобы развернуть наилучшее доступное обновление в новой определяемой пользователем группе из этого представления, выберите Развернуть рядом с группой.
См. дополнительные сведения о добавлении тегов и создании групп обновлений.
Развертывание обновления
После создания группы должно появиться новое обновление, доступное для вашей группы устройств. Ссылка на него будет отображаться в разделе Лучшее обновление. Возможно, потребуется выполнить обновление один раз. См. дополнительные сведения о соответствии обновлений.
Выберите целевую группу, указав ее имя. Откроются сведения о группе в разделе Основные сведения о группе.
Чтобы начать развертывание, перейдите на вкладку Текущее развертывание. Щелкните ссылку Развернуть рядом с нужным обновлением в разделе Доступные обновления. Наилучшее доступное обновление для указанной группы обозначается как Лучшее.
Запланируйте запуск развертывания немедленно или в будущем. Щелкните Создать.
Совет
По умолчанию дата и время запуска — это 24 часа начиная от текущего времени. Если вы хотите, чтобы развертывание началось раньше, выберите другие дату и время.
В разделе Сведения о развертывании для параметра Состояние задается значение Активно. Развернутое обновление помечается как (развертывается).
Просмотрите схему соответствия, чтобы убедиться, что обновление выполняется.
После успешного обновления устройства схема соответствия и сведения о развертывании должны измениться, отражая одну и ту же информацию.
Слежение за развертыванием обновления
Щелкните вкладку Журнал развертываний в верхней части страницы.
Щелкните ссылку Сведения рядом с созданным развертыванием.
Щелкните Обновить, чтобы просмотреть последние данные о состоянии.
Вы успешно выполнили комплексное обновление на основе пакета на устройстве с Ubuntu Server 18.04 x64 с помощью Обновления устройств для Центра Интернета вещей.
Очистка ресурсов
Очистите учетную запись и экземпляр Обновления устройств, а также центр Интернета вещей, если они больше не нужны. Также очистите устройство IoT Edge, если вы создали виртуальную машину с помощью кнопки Развернуть в Azure. Чтобы очистить ресурсы, перейдите к каждому отдельному ресурсу и щелкните Удалить. Очистите экземпляр Обновления устройств перед очисткой учетной записи Обновления устройств.
Дальнейшие действия
Используйте следующие руководства для простой демонстрации Обновления устройств для Центра Интернета вещей:
- Обновление образа — начало работы с исходным образом Yocto в Raspberry Pi 3 B+, который можно расширить с помощью открытого кода, чтобы создавать собственные образы для других архитектур при необходимости.
- Обновление прокси-сервера — использование двоичного агента Обновления устройств для подчиненных устройств.
- Начало работы с использованием эталонного агента симулятора Ubuntu (18.04 x64).
- Руководство по использованию Обновления устройств для Центра Интернета вещей Azure с операционной системой реального времени Azure.