Руководство. Использование Обновления устройств для Центра Интернета вещей Azure с эталонным агентом симулятора Ubuntu (18.04 x64)

В этом руководстве демонстрируется комплексное обновление на основе образа с помощью обновления устройств для Центр Интернета вещей. Обновление устройств для Центра Интернета вещей Azure поддерживает обновления на основе образов, пакетов и скриптов.

Обновления на основе образов позволяют с большей вероятностью получить требуемое конечное состояние устройства. Как правило, проще реплицировать результаты обновления образа между подготовительной средой и рабочей, так как это не создает те же проблемы, что и управление пакетами и их зависимостями. Из-за их атомарной природы вы также можете легко внедрить модель отработки отказа A/B.

Из этого руководства вы узнаете, как выполнять следующие задачи:

  • Назначьте устройство Интернета вещей группе Обновления устройств с помощью тегов.
  • Скачивание и установка образа.
  • Импорт обновлений.
  • Разверните обновление образа.
  • Мониторинг развертывания обновления.

Предварительные требования

  • Создайте учетную запись и экземпляр Обновления устройств , настроенные с помощью Центра Интернета вещей.

  • У вас есть устройство Ubuntu 18.04. Это может быть физическое устройство или виртуальная машина.

  • Скачайте ZIP-файл с именем Tutorial_Simulator.zip из ресурсов выпуска в последнем выпуске и распакуйте его.

    Если ваше тестовое устройство отличается от компьютера для разработки, скачайте ZIP-файл в оба приложения.

    Вы можете скачать wget ZIP-файл. Замените <release_version> последним выпуском, например 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Регистрация устройства и настройка удостоверения модуля

Добавьте устройство в реестр устройств в Центре Интернета вещей. Каждое устройство, подключающееся к Центру Интернета вещей, должно быть зарегистрировано.

В этом разделе мы также создадим удостоверение модуля. Модули — это независимые удостоверения для компонентов, существующих на устройстве Интернета вещей, что обеспечивает более детальную детализацию при наличии устройства Интернета вещей, выполняющего несколько процессов. В этом руководстве вы будете использовать это удостоверение модуля для агента обновления устройств, работающего на устройстве Интернета вещей. См. общие сведения о двойниках модулей и их использовании в Центре Интернета вещей.

  1. На портал Azure перейдите в Центр Интернета вещей.
  2. В области слева щелкните Устройства. Затем выберите Добавить устройство.
  3. В разделе Идентификатор устройстваукажите имя устройства. Убедитесь, что установлен флажок Автоматически создавать ключи.
  4. Щелкните Сохранить.
  5. Снова отобразится страница Устройства. Созданное вами устройство должно быть в списке. Выберите его.
  6. Выберите Добавить удостоверение модуля.
  7. В разделе Имя удостоверения модуля введите имя модуля, например DUAgent.
  8. Нажмите кнопку Сохранить.

Копирование строки подключения модуля

  1. В представлении устройства вы увидите новый модуль в разделе Удостоверения модулей . Выберите имя модуля, чтобы открыть сведения о нем.
  2. Щелкните значок Копирования рядом со строкой подключения (первичный ключ). Сохраните эту строку подключения для использования при настройке агента обновления устройств. Эта строка является строкой подключения модуля.

Добавление тега в двойник модуля

  1. На странице сведений об удостоверении модуля выберите Двойник удостоверения модуля.

  2. Добавьте новое значение тега Обновления устройства на том же уровне, что modelId и в version файле двойника, как показано ниже:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Снимок экрана: тег ADUGroup в двойнике модуля.

    Каждому устройству, управляемому обновлением устройств, требуется этот зарезервированный тег, который назначает устройство группе обновления устройств. Это может быть двойник устройства или двойник модуля, как показано ниже. Каждое устройство может быть назначено только одной группе обновления устройств.

  3. Щелкните Сохранить. Портал переформатирует двойник модуля, чтобы включить тег в структуру JSON.

Установка и настройка агента обновления устройств

Агент обновления устройств выполняется на каждом устройстве, управляемом службой "Обновление устройств". В этом руководстве мы настроим его для запуска в качестве симулятора, чтобы увидеть, как обновление может быть применено к устройству без фактического изменения конфигурации устройства.

  1. На устройстве Интернета вещей добавьте репозиторий пакетов Майкрософт, а затем ключ подписывания пакета Майкрософт в список доверенных ключей.

    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   
    
  2. Установите deb-пакеты агента обновления устройств.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Откройте файл конфигурации агента.

    sudo nano /etc/adu/du-config.json
    
  4. Обновите следующие значения в файле конфигурации:

    • manufacturer: "Contoso" — это значение используется для классификации устройства Интернета вещей для целевых обновлений.
    • model: "Video" — это значение используется для классификации устройства Интернета вещей для целевых обновлений.
    • имя: "aduagent"
    • agents.connectionData: укажите строку подключения, скопированную из удостоверения модуля.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Дополнительные сведения о параметрах на этом шаге см. в разделе Файл конфигурации обновления устройства.

    Примечание

    Для подготовки устройства можно также использовать службу удостоверений Интернета вещей. Для этого необходимо установить службу отступа Интернета вещей перед установкой агента обновления устройств. Затем настройте агент обновления устройств с "connectionType": "AIS" помощью и connectionData в качестве пустой строки в файле конфигурации.

  5. Сохраните файл и закройте его. CTRL+X, Yи Enter.

  6. Настройте агент для запуска в качестве симулятора. Выполните следующую команду на устройстве Интернета вещей, чтобы агент обновления устройств вызвал обработчик симулятора для обработки обновления пакета с помощью SWUpdate (microsoft/swupdate:1).

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Распакуйте Tutorial_Simulator.zip файл, скачанный в предварительных требованиях, и скопируйте sample-du-simulator-data.json его в папку tmp .

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Если параметр /tmp не существует, выполните следующую команду:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Изменение разрешений для нового файла.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Перезапустите агент обновления устройств, чтобы применить изменения.

     sudo systemctl restart deviceupdate-agent
    

Импорт обновления

В этом разделе вы используете файлы TutorialImportManifest_Sim.importmanifest.json и adu-update-image-raspberrypi3.swu из , скачанных Tutorial_Simulator.zip в предварительных требованиях. Файл обновления повторно используется в руководстве по Raspberry Pi. Так как обновление, описываемое в этом руководстве, имитируется, содержимое файла не имеет значения.

  1. На компьютере разработки войдите в портал Azure и перейдите в Центр Интернета вещей, в котором настроено обновление устройств.

  2. В области навигации в разделе Управление устройствами выберите Обновления.

  3. Выберите Импорт нового обновления.

  4. Выберите Выбрать из контейнера хранилища.

  5. Выберите существующую учетную запись хранения или создайте новую, выбрав + Учетная запись хранения. Затем выберите существующий контейнер или создайте новый, выбрав + Контейнер. Этот контейнер будет использоваться для размещения файлов обновления для импорта.

    Примечание

    Мы рекомендуем использовать новый контейнер каждый раз при импорте обновления, чтобы избежать случайного импорта файлов из предыдущих обновлений. Если вы не будете использовать новый контейнер, обязательно удалите все файлы из существующего контейнера, прежде чем завершить этот шаг.

    Снимок экрана: учетные записи хранения и контейнеры.

  6. В контейнере выберите Отправить и перейдите к файлам, скачанным в предварительных требованиях. Выберите файлы TutorialImportManifest_Sim.importmanifest.json и adu-update-image-raspberrypi3.swu , а затем нажмите кнопку Отправить.

  7. Установите флажок для каждого файла, а затем нажмите кнопку Выбрать , чтобы вернуться на страницу Импорт обновления .

    Снимок экрана: выбор отправленных файлов в контейнере.

  8. На странице Импорт обновления проверьте импортируемые файлы. Затем щелкните Импорт обновления, чтобы начать процесс импорта.

    Снимок экрана: отправленные файлы, которые будут импортированы в виде обновления.

  9. Начнется процесс импорта, а на экране появится раздел Журнал импорта. В столбце Состояние отображается значение Выполняется , пока импорт выполняется, и Выполнено после завершения импорта. Чтобы обновить состояние, нажмите кнопку Обновить .

  10. Если столбец Состояние указывает на то, что импорт успешно выполнен, выберите заголовок Доступные обновления. Импортированное обновление должно появиться в списке.

    Снимок экрана: новое обновление в списке доступных обновлений.

Дополнительные сведения о процессе импорта см. в статье Импорт обновления в обновление устройств для Центр Интернета вещей.

Просмотр групп устройств

Обновление устройств использует группы для упорядочения устройств. Обновление устройств автоматически сортирует устройства по группам на основе назначенных им тегов и свойств совместимости. Каждое устройство принадлежит только к одной группе, но группы могут иметь несколько подгрупп для сортировки различных классов устройств.

  1. Перейдите на вкладку Группы и развертывания в верхней части страницы Обновления.

  2. Просмотр списка групп и диаграммы соответствия обновлений. На схеме соответствия обновлений требованиям отображается количество устройств в разных состояниях соответствия: При последнем обновлении, Доступны новые обновления и Выполняющиеся обновления. Подробнее о соответствии обновлений.

    Снимок экрана: представление

    Вы увидите группу устройств, содержащую имитированное устройство, настроенное в этом руководстве, а также все доступные обновления для устройств в новой группе. Если есть устройства, которые не соответствуют требованиям к классу устройств в группе, они отобразятся в соответствующей группе недопустимых устройств.

Дополнительные сведения о тегах и группах см. в разделе Управление группами устройств.

Развертывание обновления

  1. На вкладке Группы и развертывания вы увидите новое обновление, доступное для вашей группы устройств. Ссылка на обновление должна находиться в разделе Состояние. Может потребоваться обновить содержимое страницы.

  2. Выберите имя группы, чтобы просмотреть сведения о ней.

  3. На странице сведений о группе вы увидите, что доступно одно новое обновление. Выберите Развернуть , чтобы начать развертывание.

    Снимок экрана: запуск развертывания группового обновления.

  4. Обновление, импортированное в предыдущем разделе, указано как лучшее доступное обновление для этой группы. Выберите Развернуть.

  5. Запланируйте немедленное начало развертывания, а затем нажмите кнопку Создать.

  6. На странице сведений о группе перейдите на вкладку Текущие обновления . В разделе Сведения о развертываниисостояние изменится на Активно.

  7. После успешного обновления устройства вернитесь на страницу Обновления. Вы должны увидеть, что диаграмма соответствия требованиям и сведения о развертывании обновлены, чтобы отразить то же самое.

Слежение за развертыванием обновления

  1. Вернитесь на страницу сведений о группе и выберите вкладку Журнал развертывания .

  2. Выберите Просмотреть сведения о развертывании рядом с созданным развертыванием.

    Снимок экрана: сведения о развертывании.

  3. Щелкните Обновить, чтобы просмотреть последние данные о состоянии.

Вы успешно выполнили комплексное обновление с помощью Обновления устройств для Центра Интернета вещей и эталонного агента симулятора Ubuntu (18.04 x64).

Очистка ресурсов

Если вы собираетесь перейти к следующему руководству, сохраните обновления устройств и Центр Интернета вещей ресурсы.

Если эти ресурсы больше не нужны, вы можете удалить эти ресурсы в портал Azure.

  1. На портале Azure перейдите к используемой группе ресурсов.

  2. Выберите ресурсы для удаления.

    • Если вы хотите удалить все ресурсы в группе, выберите Удалить группу ресурсов.
    • Если вы хотите удалить только ресурсы, установите флажки, чтобы выбрать ресурсы, а затем выберите Удалить.

Дальнейшие действия

В этом руководстве вы узнали, как импортировать и развернуть обновление образа. Далее узнайте, как обновить пакеты устройств.