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


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

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

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

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

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

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

Примечание

Обновления образов в этом руководстве проверены на плате Raspberry Pi 3 B+.

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

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

Скачивание образа

Мы предоставляем примеры образов в разделе Assets (Ресурсы) на странице выпусков обновлений устройств в GitHub. Файл .gz — это базовый образ, который можно установить на плате Raspberry Pi 3 B+. Файл swUpdate включает обновление, которое импортируется через Обновление устройств для Центра Интернета вещей.

Запись образа на SD-карту

Используйте предпочитаемое вами средство для записи образа ОС на устройство флэш-памяти, чтобы установить на SD-карту базовый образ Обновления устройств (adu-base-image), который будет развернут на устройстве Raspberry Pi 3 B +.

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

  1. Установите служебную программу bmaptool, если вы это еще не сделали.

    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. (Необязательно.) Чтобы ускорить запись образа, скачайте файл bimap вместе с файлом образа и поместите его в тот же каталог.

  6. Запишите образ на SD-карту.

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

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

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

Создание устройства или модуля в Центре Интернета вещей и получение строки подключения

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

  1. Откройте Центр Интернета вещей на портале Azure.

  2. Создайте новое устройство.

  3. В области слева щелкните Устройства. Затем щелкните Создать.

  4. В разделе Идентификатор устройстваукажите имя устройства. Убедитесь, что установлен флажок Автоматически создавать ключи.

  5. Щелкните Сохранить. На странице Устройства созданное вами устройство должно отобразиться в списке.

  6. Получите строку подключения устройства:

    • Вариант 1. Используйте агент обновления устройств с идентификатором модуля. На той же странице Устройства выберите Добавить идентификатор модуля вверху. Создайте новый модуль Обновления устройств с именем IoTHubDeviceUpdate. Выберите другие параметры, применимые к вашему варианту использования, и щелкните Сохранить. Выберите только что созданный модуль. В представлении модуля щелкните значок Копировать рядом с полем Основная строка подключения.
    • Вариант 2. Используйте агент Обновления устройств с удостоверением устройства. В представлении устройства щелкните значок Копировать рядом с полем Основная строка подключения.
  7. Вставьте скопированные символы куда-нибудь для последующего использования, выполнив следующие действия.

    Скопированная строка и есть строка подключения устройства.

Подготовка конфигураций устройств для Обновления устройств для центра Интернета вещей

На устройстве должны быть два файла конфигурации, чтобы Обновление устройств для Центра Интернета вещей было настроено правильно. Первый файл — это файл du-config.json, который должен существовать в /adu/du-config.json. Первый файл — это файл du-diagnostics-config.json, который должен существовать в /adu/du-diagnostics-config.json.

Ниже приведены два примера для файлов du-config.json и du-diagnostics-config.json.

Пример du-config.json

   {
      "schemaVersion": "1.0",
      "aduShellTrustedUsers": [
         "adu",
         "do"
      ],
      "manufacturer": "fabrikam",
      "model": "vacuum",
      "agents": [
         {
         "name": "main",
         "runas": "adu",
         "connectionSource": {
            "connectionType": "string",
            "connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
         },
         "manufacturer": "fabrikam",
         "model": "vacuum"
         }
      ]
   }  

Пример du-diagnostics-config.json

   {
      "logComponents":[
         {
               "componentName":"adu",
               "logPath":"/adu/logs/"
         },
         {
               "componentName":"do",
               "logPath":"/var/log/deliveryoptimization-agent/"
         }
      ],
      "maxKilobytesToUploadPerLogPath":50
   }

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

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

  2. Следуйте этим инструкциям, чтобы добавить сведения о конфигурации:

    1. Сначала подключитесь к компьютеру по протоколу SSH, используя следующую команду в окне PowerShell:

         ssh raspberrypi3 -l root
      
    2. Создайте или откройте файл du-config.json для редактирования:

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

    4. Завершив изменения, нажмите клавиши CTRL+X, чтобы выйти из редактора. Затем введите y, чтобы сохранить изменения.

    5. Теперь вам нужно создать файл du-diagnostics-config.json с помощью аналогичных команд. Начните с создания или открытия файла du-diagnostics-config.json для редактирования:

         nano /adu/du-diagnostics-config.json
      
    6. Скопируйте содержимое du-diagnostics-config.json из предыдущего примера и замените любые конфигурации, которые отличаются от сборки по умолчанию. В примере файла du-diagnostics-config.json представлены расположения журналов по умолчанию для Обновления устройств для Центра Интернета вещей. Их необходимо изменить, только если ваша реализация отличается.

    7. Завершив изменения, нажмите клавиши CTRL+X, чтобы выйти из редактора. Затем введите y, чтобы сохранить изменения.

    8. Используйте следующую команду, чтобы отобразить файлы, расположенные в каталоге /adu/. Вы должны увидеть оба файла конфигурации files.du-diagnostics-config.json для редактирования:

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

       systemctl start adu-agent
    
  4. Убедитесь, что агент подключен:

       systemctl status adu-agent
    

    Вы должны увидеть соответствующее состояние (что также указано зеленым цветом).

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

  1. В области слева щелкните Устройства.

  2. Выберите ссылку с именем устройства.

  3. В верхней части страницы выберите Двойник устройства, если вы подключаетесь напрямую к Обновлению устройств с помощью удостоверения устройства Интернета вещей. В противном случае выберите созданный ранее модуль и щелкните соответствующий двойник модуля.

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

  5. Файлы базового образа и образа обновления имеют номер версии в имени файла.

    adu-<image type>-image-<machine>-<version number>.<extension>
    

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

Добавление тега на устройство

  1. Войдите на портал Azure и перейдите в центр Интернета вещей.

  2. На левой панели в разделе Устройства найдите свое устройство Интернета вещей и перейдите к двойнику устройства или двойнику модуля.

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

  4. Добавьте новое значение тега Обновления устройств, как показано ниже.

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

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

  1. Скачайте пример манифеста руководства (Tutorial Import Manifest_Pi.json) и пример обновления (adu-update-image-raspberrypi3-0.6.5073.1.swu) из ресурсов выпуска для последнего агента.

  2. Войдите на портал Azure и перейдите в свой центр Интернета вещей с Обновлением устройств. В области слева в разделе Автоматическое управление устройствами выберите Обновления.

  3. Откройте вкладку Обновления.

  4. Выберите + Импортировать новое обновление.

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

    Примечание

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

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

  6. В контейнере щелкните Отправка и перейдите к файлам, скачанным на шаге 1. Выбрав все файлы обновления, щелкните Отправить. Затем щелкните Выбрать, чтобы вернуться на страницу Импорт обновления.

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

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

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

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

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

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

См. дополнительные сведения об импорте обновлений.

Создание группы обновлений

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

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

  2. Выберите Добавить группу, чтобы создать новую группу.

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

  3. Выберите тег Центр Интернета вещей и укажите класс устройства в списке. Затем выберите Создать группу.

    Снимок экрана: выбор тега.

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

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

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

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

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

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

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

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

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

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

  4. Запланируйте запуск развертывания немедленно или в будущем. Щелкните Создать.

    Снимок экрана: кнопка

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

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

  6. Просмотрите схему соответствия, чтобы убедиться, что обновление выполняется.

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

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

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

  1. Щелкните вкладку Журнал развертываний в верхней части страницы.

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

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

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

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

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

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

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

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