Поделиться через


Руководство по обновлению устройств Azure для Центр Интернета вещей с помощью агента симулятора

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

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

Изучив это руководство, вы:

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

Необходимые компоненты

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

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

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

Создание удостоверения модуля

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

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

  1. На странице "Устройства" выберите зарегистрированное устройство.
  2. На странице устройства выберите "Добавить удостоверение модуля".
  3. На странице "Добавление удостоверения модуля" в разделе "Имя удостоверения модуля" введите имя модуля, например DeviceUpdateAgent.
  4. Выберите Сохранить. Новое удостоверение модуля отображается на странице устройства в разделе "Удостоверения модуля".
  5. Выберите имя модуля и на странице сведений об удостоверениях модуля щелкните значок "Копировать" рядом со строкой подключения (первичный ключ). Сохраните этот модуль строка подключения, чтобы использовать при настройке агента обновления устройств.

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

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

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

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

  2. На странице "Двойник удостоверений модуля" добавьте новый DeviceUpdateGroup тег в код JSON на том же уровне, что modelId и versionследующим образом:

    "tags": {
        "DeviceUpdateGroup": "DU-simulator-tutorial"
    },
    
  3. Выберите Сохранить. Портал переформатирует двойник модуля, чтобы включить тег в структуру JSON.

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

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

Примечание.

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

  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. Откройте файл конфигурации агента du-config.json.

    sudo nano /etc/adu/du-config.json
    
  4. Обновите du-config.json со следующими примерами значений. Замените <connection string> заполнитель строка подключения, скопированной из удостоверения модуля. Дополнительные сведения о параметрах см . в файле конфигурации обновления устройств.

    • manufacturer: "contoso"
    • model: "video"
    • agents.name: "aduagent"
    • agents.connectionData: <connection string>
    • agents.manufacturer: "contoso"
    • agents.model: "video"

    Измененный файл du-config.json должен выглядеть следующим образом:

    {
       "schemaVersion": "1.0",
       "aduShellTrustedUsers": [
          "adu",
          "do"
       ],
       "manufacturer": "contoso",
       "model": "video",
       "agents": [
          {
          "name": "aduagent",
          "runas": "adu",
          "connectionSource": {
             "connectionType": "string",
             "connectionData": <connection string>
          },
          "manufacturer": "contoso",
          "model": "video"
          }
       ]
    }
    
  5. Нажмите клавиши CTRL+X, чтобы выйти из редактора, и введите y, чтобы сохранить изменения.

  6. Чтобы настроить агент для запуска в качестве симулятора, выполните следующую команду на устройстве Интернета вещей. Агент обновления устройств вызывает обработчик симулятора для обработки обновлений, использующих расширение MICROSOFT SWUpdate.

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    

Получение файлов симулятора

  1. Скачайте и извлеките архив Tutorial_Simulator.zip из раздела "Обновления устройств GitHub" на компьютер Ubuntu 18.04.

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

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    
  2. Скопируйте файл sample-du-simulator-data.json из извлеченной папки Tutorial_Simulator в папку 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
    
  3. Измените разрешения для файла /tmp/sample-du-simulator-data.json .

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

     sudo systemctl restart deviceupdate-agent
    

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

Скачайте и извлеките архив Tutorial_Simulator.zip из раздела "Обновления устройств GitHub" на компьютер разработки, если оно отличается от устройства Ubuntu 18.04 IoT. В этом разделе используются файлы TutorialImportManifest_Sim.importmanifest.json и adu-update-image-raspberrypi3.swu из папки Tutorial_Simulator .

Файл обновления совпадает с файлом в руководстве Raspberry Pi. Так как обновление, описываемое в этом руководстве, имитируется, содержимое файла не имеет значения.

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

  2. В области навигации выберите Управление устройствами> Updates.

  3. На странице "Обновления" выберите "Импорт нового обновления".

  4. На странице "Импорт обновления" выберите "Выбрать из контейнера хранилища".

  5. Выберите существующую учетную запись хранения или создайте новую учетную запись, выбрав учетную запись хранения.

  6. Выберите существующий контейнер или создайте новый контейнер, выбрав контейнер. Этот контейнер используется для этапов обновления файлов для импорта.

    Примечание.

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

  7. На странице контейнера нажмите кнопку "Отправить". Перейдите к файлам TutorialImportManifest_Sim.importmanifest.json и adu-update-image-raspberrypi3.swu и нажмите кнопку "Отправить".

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

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

  9. На странице "Импорт обновления" просмотрите файлы, которые нужно импортировать, а затем выберите "Импорт обновления".

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

    Начинается процесс импорта, и вы можете выбрать "Просмотреть журнал импорта", чтобы просмотреть журнал импорта и состояние. На странице журнала обновления поле "Состояние" отображается успешно после завершения импорта. Вы можете выбрать "Обновить", чтобы обновить состояние.

Импортированное обновление теперь отображается на странице "Обновления ".

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

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

Выберите группу устройств

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

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

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

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

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

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

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

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

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

  3. Запланируйте развертывание сразу же, а затем нажмите кнопку "Создать".

  4. Перейдите на вкладку "Текущие обновления". В разделе "Сведения о развертывании" состояние становится активным.

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

Просмотр журнала развертывания обновлений

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

  2. Выберите "Просмотреть сведения о развертывании" рядом с созданным развертыванием. Щелкните Обновить, чтобы просмотреть последние данные о состоянии.

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

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

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

  1. В портал Azure перейдите к группе ресурсов, содержащей ресурсы.
  2. Если вы хотите удалить все ресурсы в группе, выберите "Удалить группу ресурсов".
  3. Если вы хотите удалить только некоторые из ресурсов, установите флажки, чтобы выбрать ресурсы, а затем нажмите кнопку "Удалить".