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


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

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

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

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

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

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

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

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

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

Примечание.

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

Настройка Raspberry Pi

Файл Tutorial_RaspberryPi3.zip содержит все необходимые файлы для руководства. Скачайте файл из раздела "Активы " последнего выпуска на странице выпусков обновления устройств GitHub и распакуйте его.

В извлеченной папке Tutorial_RaspberryPi3 базовый образ, который можно запустить на доске Raspberry Pi, является adu-base-image-raspberrypi3.wic. Базовый образ использует сборку Yocto на основе выпуска 3.4.4. На изображении есть агент обновления устройств и SWUpdate, который включает обновление двойного раздела обновления устройства. Дополнительные сведения о уровнях Yocto см. в статье Создание пользовательской системы под управлением Linux с помощью агента обновления устройств с помощью проекта Yocto.

Файлы обновления, импортируемые с помощью обновления устройств, являются следующими:

  • ФАЙЛ SWUpdate adu-update-image-raspberrypi3-1.2.0.swu
  • Настраиваемый скрипт SWUpdate example-a-b-update.sh
  • EDS-ADUClient.yocto-update.1.2.0.importmanifest.json манифеста

Использование bmaptool для записи образа на SD-карту

Внимание

Обновление устройств Azure для Центр Интернета вещей программного обеспечения распространяется на следующие условия лицензии:

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

Используйте средство мигания ОС, чтобы установить базовый образ обновления устройства на SD-карте, используемой на устройстве Raspberry Pi. Приведенные ниже инструкции используются bmaptool для вспышки на SD-карте. Замените <device> заполнитель именем устройства и <path to image> заполнителем путь к скачанного файла образа.

  1. Установите служебную bmap-tools программу, если у вас ее нет.

    sudo apt-get install bmap-tools
    
  2. Найдите путь sd-карты в /dev. Путь должен выглядеть примерно так: /dev/sd* или /dev/mmcblk*. Чтобы правильно указать путь, можно использовать служебную программу dmesg.

  3. Отключите все подключенные секции перед записью.

    sudo umount /dev/<device>
    
  4. Проверьте, есть ли у вас разрешения для записи данных на устройство.

    sudo chmod a+rw /dev/<device>
    
  5. Запишите образ на SD-карту.

    sudo bmaptool copy <path to image> /dev/<device>
    

    Совет

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

Настройка агента Обновления устройств на устройстве Raspberry Pi

  1. Убедитесь, что Raspberry Pi подключен к сети.

  2. Безопасная оболочка (SSH) в Raspberry Pi с помощью следующей команды в окне PowerShell:

    ssh raspberrypi3 -l root
    

Создание файлов конфигурации обновления устройства

Файлы конфигурации обновления устройств du-config.json и файлы конфигурации du-диагностика-config.json должны находиться на устройстве. Чтобы создать файлы, выполните следующие команды в терминале, вошедшего в Raspberry Pi.

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

    nano /adu/du-config.json
    
  2. Редактор открывает файл du-config.json . Если вы создаете файл, он пуст. Скопируйте и вставьте следующий код в файл, заменив примеры значений любыми необходимыми конфигурациями для устройства. Замените строку примера connectionData на устройство строка подключения, скопированное на шаге регистрации устройства.

    {
       "schemaVersion": "1.0",
       "aduShellTrustedUsers": [
          "adu",
          "do"
       ],
       "manufacturer": "contoso",
       "model": "virtual-vacuum-v2",
       "agents": [
          {
          "name": "main",
          "runas": "adu",
          "connectionSource": {
             "connectionType": "string",
             "connectionData": "HostName=<hub_name>.azure-devices.net;DeviceId=<device_id>;SharedAccessKey=<device_key>" 
          },
          "manufacturer": "contoso",
          "model": "virtual-vacuum-v2"
          }
       ]
    }  
    
  3. Нажмите клавиши CTRL+X, чтобы выйти из редактора, и введите y, чтобы сохранить изменения.

  4. Создайте файл du-диагностика-config.json с помощью аналогичных команд. Создайте и откройте файл:

    nano /adu/du-diagnostics-config.json
    
  5. Скопируйте и вставьте следующий код du-диагностика-config.json в файл. Значения — это расположения журналов обновления устройств по умолчанию, и их необходимо изменить только в том случае, если конфигурация отличается от используемой по умолчанию.

    {
       "logComponents":[
          {
             "componentName":"adu",
             "logPath":"/adu/logs/"
          },
          {
             "componentName":"do",
             "logPath":"/var/log/deliveryoptimization-agent/"
          }
       ],
       "maxKilobytesToUploadPerLogPath":50
    }
    
  6. Нажмите клавиши CTRL+X, чтобы выйти из редактора, и введите y, чтобы сохранить изменения.

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

    ls -la /adu/
    
  8. Используйте следующую команду, чтобы перезапустить управляющая программа обновления устройства и убедиться, что применяются конфигурации.

    systemctl start deviceupdate-agent
    
  9. Убедитесь, что агент работает, выполнив следующую команду:

    systemctl status deviceupdate-agent
    

    Состояние должно отображаться как живое и зеленое.

Подключение к устройству в Центр Интернета вещей и добавление тега группы

  1. На странице центра Интернета вещей портал Azure для экземпляра обновления устройств выберите устройства управления устройствами> в области навигации слева.

  2. На странице "Устройства" выберите имя устройства.

  3. В верхней части страницы устройства выберите двойник устройства.

  4. На странице "reported" двойника устройства в разделе двойника "properties" устройства найдите версию ядра Linux для устройства.

    Для нового устройства, которое не получило обновления из обновления устройства, значение свойства DeviceManagement:DeviceInformation:1.swVersion представляет версию встроенного ПО, запущенную на устройстве. После применения обновления для устройства значение свойства AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId представляет версию встроенного ПО.

    Базовые и обновленные имена файлов изображений имеют номер версии adu-image-image-image-machine-version<.<><><>расширение>. Обратите внимание на номера версий, используемые при импорте обновления.

Добавление тега группы

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

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

    "tags": {
        "ADUGroup": "<CustomTagValue>"
    },
    

    На следующем снимке экрана показано, где в файле для добавления тега.

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

  2. Выберите Сохранить.

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

  1. На странице центра Интернета вещей портал Azure для экземпляра обновления устройств выберите Управление устройствами> Updates в области навигации слева.

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

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

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

  5. На странице "Контейнеры" выберите существующий контейнер или создайте новый контейнер, выбрав контейнер. Контейнер используется для этапов обновления файлов для импорта.

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

    Совет

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

  6. На странице контейнера нажмите кнопку "Отправить". Перетащите и удалите или выберите следующие файлы обновления из скачаемой папки Tutorial_RaspberryPi3 :

    • adu-update-image-raspberrypi3-1.2.0.swu
    • example-a-b-update.sh
    • EDS-ADUClient.yocto-update.1.2.0.importmanifest.json
  7. Выберите Отправить. После отправки файлы отображаются на странице контейнера.

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

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

  9. На экране "Импорт обновления" выберите "Импортировать обновление".

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

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

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

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

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

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

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

Вы увидите группу устройств, содержащую устройство, настроенное в этом руководстве, вместе с доступными обновлениями для устройств в группе. Может потребоваться обновить содержимое страницы. Чтобы развернуть лучшее доступное обновление в группе из этого представления, выберите " Развернуть рядом с группой".

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

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

  1. На странице сведений о группе выберите вкладку "Текущее развертывание", а затем выберите "Развернуть рядом с нужным обновлением" в разделе "Доступные обновления". Лучшее доступное обновление для группы обозначается лучшим выделением.

    Снимок экрана: выбор обновления.

  2. На странице "Создание развертывания" запланируйте развертывание немедленно или в будущем, а затем нажмите кнопку "Создать".

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

    Совет

    По умолчанию дата и время запуска — это 24 часа начиная от текущего времени. Не забудьте выбрать другую дату и время, если вы хотите, чтобы развертывание началось раньше.

  3. В разделе Сведения о развертывании для параметра Состояние задается значение Активно. В разделе "Доступные обновления" выбранное обновление помечается ( развертывание).

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

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

    Снимок экрана: успешное обновление.

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

Чтобы просмотреть журнал развертывания, выполните приведенные действия.

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

    Снимок экрана: журнал развертываний.

  2. На странице сведений о развертывании выберите "Обновить", чтобы просмотреть последние сведения о состоянии.

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

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

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

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

Следующие шаги