Создание и развертывание IoT Edge для Linux, работающего на устройстве Windows, с помощью симметричных ключей

Применимо к:IoT Edge 1.5 флажок IoT Edge 1.5

Внимание

IoT Edge 1.5 LTS — это поддерживаемый выпуск. IoT Edge 1.4 LTS достиг срока окончания службы 12 ноября 2024 года. Если вы используете более ранний выпуск, ознакомьтесь с Update IoT Edge.

В этой статье приведены комплексные инструкции по регистрации и подготовке IoT Edge для Linux на устройстве Windows.

Каждое устройство, которое подключается к Центру Интернета вещей, имеет идентификатор устройства, который используется для отслеживания передачи данных из облака на устройство и с устройства в облако. Вы настраиваете устройство со сведениями о подключении, включая имя узла IoT hub, идентификатор устройства и сведения, которые устройство использует для проверки подлинности для IoT Hub.

Действия, описанные в этой статье, посвящены процессу, который называется подготовкой вручную, в ходе которого вы подключаете одно устройство к Центру Интернета вещей. Для подготовки вручную у вас есть два варианта проверки подлинности устройств IoT Edge:

  • Симметрические ключи. При создании удостоверения устройства в IoT Hub служба создает два ключа. Вы размещаете один из ключей на устройстве, и он представляет ключ для IoT Hub при проверке подлинности.

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

  • Самозаверяющий сертификат X.509. Вы создаете два сертификата удостоверения X.509 и размещаете их на устройстве. При создании нового удостоверения устройства в IoT Hub вы предоставляете отпечатки из обоих сертификатов. Когда устройство проходит проверку подлинности в IoT Hub, он представляет один сертификат и IoT Hub проверяет, соответствует ли сертификат отпечатку.

    Этот метод проверки подлинности является более безопасным и рекомендуется для рабочих сценариев.

В этой статье рассматривается использование симметричных ключей в качестве метода проверки подлинности. Если вы хотите использовать сертификаты X.509, ознакомьтесь с Создайте и настройте устройство IoT Edge для Linux в среде Windows с помощью сертификатов X.509.

Примечание.

Если вам нужно настроить множество устройств и не хотите вручную подготовить каждую из них, используйте одну из следующих статей, чтобы узнать, как IoT Edge работает со службой подготовки устройств IoT Hub:

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

В этой статье описывается регистрация устройства IoT Edge и установка IoT Edge для Linux на Windows. Эти задачи имеют разные предварительные требования и используют разные служебные программы. Перед продолжением убедитесь, что выполнены все предварительные требования.

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

Для регистрации устройства можно использовать портал Azure, Visual Studio Code или Azure CLI. Каждая программа имеет собственные предварительные требования или может потребоваться установить следующее:

В вашей подписке Azure находится бесплатный или стандартный IoT-хаб.

Требования к устройствам

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

  • Требования к системе

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 и Windows Server 2019 минимальной сборки 17763 со всеми текущими накопительными обновлениями, установленными.
  • Требования к аппаратному обеспечению

    • Минимальная бесплатная память: 1 ГБ
    • Минимальное свободное место на диске: 10 ГБ
  • Поддержка виртуализации

  • Поддержка сетей

    • Windows Server не включает переключатель по умолчанию. Прежде чем развернуть EFLOW на устройстве Windows Server, необходимо создать виртуальный коммутатор. Дополнительные сведения см. в разделе создание виртуального коммутатора Azure IoT Edge для Linux на Windows.
    • Настольные версии Windows включают переключатель по умолчанию, который можно использовать для установки EFLOW. При необходимости можно создать собственный настраиваемый виртуальный коммутатор.

Совет

Если вы хотите использовать модули Linux с ускорением с помощью GPU в развертывании Azure IoT Edge для Linux на Windows, рассмотрите несколько вариантов конфигурации.

Необходимо установить правильные драйверы в зависимости от архитектуры GPU, и вам может потребоваться доступ к Windows Insider Program сборке. Сведения о том, как определить потребности конфигурации и удовлетворить эти предварительные требования, см. в статье ускорение GPU Azure IoT Edge для Linux в Windows.

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

Инструменты разработчика

Подготовьте целевое устройство для установки Azure IoT Edge для Linux на Windows и развертывания виртуальной машины Linux:

  1. Задайте политику выполнения на целевом устройстве как AllSigned. Текущую политику выполнения можно проверить в командной строке PowerShell с повышенными привилегиями, выполнив следующую команду:

    Get-ExecutionPolicy -List
    

    Если политика выполнения для local machine не равна AllSigned, задайте политику выполнения с помощью:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Дополнительную информацию о модуле PowerShell Azure IoT Edge для Linux на Windows см. в справочнике по функциям PowerShell.

Зарегистрировать устройство

Вы можете использовать портал Azure, Visual Studio Code или Azure CLI для регистрации устройства в зависимости от вашего предпочтения.

В вашем центре Интернета вещей на портале Azure вы создаете и управляете устройствами IoT Edge отдельно от устройств, которые не поддерживают Edge.

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

  2. В левой области выберите "Устройства " в меню, а затем нажмите кнопку "Добавить устройство".

  3. В разделе "Создание устройства" укажите следующие сведения:

    • Создайте описательный идентификатор устройства, например my-edge-device-1 (все в нижнем регистре). Скопируйте этот идентификатор устройства, как вы его используете позже.
    • Установите флажок IoT Edge device.
    • В качестве типа проверки подлинности выберите Симметричный ключ.
    • Используйте параметры по умолчанию для автоматического создания ключей проверки подлинности, которые подключают новое устройство к центру.
  4. Нажмите Сохранить.

Вы можете увидеть ваше новое устройство в вашем IoT-хабе.

Теперь, когда устройство зарегистрировано в IoT Hub, на следующем этапе вы можете получить информацию о подготовке, используемую для завершения установки и подготовки среды исполнения IoT Edge.

Просмотр зарегистрированных устройств и получение информации о предоставлении доступа

Устройства, использующие проверку подлинности симметричного ключа, нуждаются в строках подключения для завершения установки и подготовки среды выполнения IoT Edge. Строка подключения генерируется для вашего устройства IoT Edge при его создании. Для Visual Studio Code и Azure CLI в выходных данных JSON отображается connection string. Если вы используете портал Azure для создания устройства, вы можете найти строку подключения непосредственно на устройстве. При выборе устройства в Центре Интернета вещей оно отображается как Primary connection string на странице устройства.

Устройства с поддержкой функций edge, подключенные к вашему узлу IoT, перечислены на странице "Устройства" вашего узла IoT. Если у вас несколько устройств, можно отфильтровать список, выбрав тип устройств Iot Edge , а затем нажмите кнопку "Применить".

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

  1. На странице Devices выберите идентификатор устройства IoT Edge из списка.
  2. Скопируйте значение в поле Основная строка подключения или Дополнительная строка подключения. Оба ключа работают.

Установка IoT Edge

Разверните Azure IoT Edge для Linux на Windows на целевом устройстве.

Примечание.

В следующем процессе PowerShell описывается развертывание IoT Edge для Linux на Windows на локальном устройстве. Для развертывания на удаленном целевом устройстве с помощью PowerShell используйте удаленный сеанс PowerShell, чтобы установить подключение к удаленному устройству и дистанционно выполнить эти команды на нем.

  1. В сеансе PowerShell с повышенными привилегиями выполните любую из следующих команд в зависимости от архитектуры целевого устройства, чтобы скачать IoT Edge для Linux на Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_5_LTS_ARM64" -OutFile $msiPath
      
  2. Установите IoT Edge для Linux на Windows на устройстве.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Вы можете указать пользовательские каталоги установки и VHDX для IoT Edge for Linux on Windows, добавив параметры INSTALLDIR="<FULLY_QUALIFIED_PATH>" и VHDXDIR="<FULLY_QUALIFIED_PATH>" в команду установки. Например, если вы хотите использовать папку D:\EFLOW для установки и D:\EFLOW-VHDX для VHDX , можно использовать следующий командлет PowerShell.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Задайте политику выполнения на целевом устройстве AllSigned, если она еще не задана. См. предварительные требования PowerShell для команд, чтобы проверить текущую политику выполнения и задать для нее значение AllSigned.

  4. Создайте развертывание IoT Edge для Linux на Windows. Развертывание создает виртуальную машину Linux и устанавливает среду выполнения IoT Edge для вас.

    Deploy-Eflow
    

    Совет

    По умолчанию команда Deploy-Eflow создает вашу виртуальную машину Linux с 1 ГБ ОЗУ, 1 ядром виртуального ЦП и 16 ГБ дискового пространства. Однако ресурсы, необходимые вашей виртуальной машине, сильно зависят от развертываемых вами рабочих нагрузок. Если у виртуальной машины недостаточно памяти для поддержки рабочих нагрузок, она не запускается.

    Доступные ресурсы виртуальной машины можно настроить с помощью необязательных параметров команды Deploy-Eflow. Эта настройка необходима для развертывания EFLOW на устройстве с минимальными требованиями к оборудованию.

    Например, следующая команда создает виртуальную машину с 1 виртуальным ЦП, 1 ГБ ОЗУ (представлено в МБ) и 2 ГБ дискового пространства:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    Сведения обо всех доступных необязательных параметрах см. в разделе Функции PowerShell для IoT Edge для Linux в Windows.

    Предупреждение

    По умолчанию виртуальная машина EFLOW Linux не имеет конфигурации DNS. Развертывания с помощью DHCP пытаются получить конфигурацию DNS, распространяемую DHCP-сервером. Проверьте конфигурацию DNS, чтобы обеспечить подключение к Интернету. Дополнительные сведения см. в статье AzEFLOW-DNS.

    Вы можете назначить GPU для вашего развертывания, чтобы использовать модули Linux с ускорением GPU. Чтобы получить доступ к этим функциям, необходимо установить предварительные условия, описанные в ускорение GPU для Azure IoT Edge для Linux на Windows.

    Чтобы использовать сквозную передачу GPU, добавьте параметры gpuName, gpuPassthroughType и gpuCount в вашу Deploy-Eflow команду. Сведения обо всех доступных необязательных параметрах см. в разделе Функции PowerShell для IoT Edge для Linux в Windows.

    Предупреждение

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

  5. Введите Y , чтобы принять условия лицензии.

  6. Введите O или R , чтобы включить или отключить необязательные диагностические данные в зависимости от вашего предпочтения.

  7. После завершения развертывания в окне PowerShell появится сообщение об успешном развертывании.

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

    После успешного развертывания вы готовы к настройке вашего устройства.

Предоставление облачного удостоверения устройству

Настройте устройство с помощью идентификационной информации облака и данных аутентификации.

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

Выполните указанную ниже команду в сеансе PowerShell с повышенными правами на целевом устройстве. Замените текст заполнителя своими значениями.

Provision-EflowVm -provisioningType ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"

Дополнительные сведения о команде Provision-EflowVM см. в разделе функции PowerShell для IoT Edge для Linux на Windows.

Проверка успешной настройки

Убедитесь, что IoT Edge для Linux на Windows успешно установлен и настроен на устройстве IoT Edge.

  1. Войдите в IoT Edge для Linux на виртуальной машине Windows с помощью следующей команды в сеансе PowerShell:

    Connect-EflowVm
    

    Примечание.

    Единственная учетная запись, которой разрешено подключение к виртуальной машине по протоколу SSH, — это учетная запись пользователя, который создал эту машину.

  2. После входа проверьте список запущенных модулей IoT Edge с помощью следующей команды Linux:

    sudo iotedge list
    
  3. Если вам нужно устранить неполадки со службой IoT Edge, используйте следующие команды Linux.

    1. Получите журналы службы.

      sudo iotedge system logs
      
    2. Используйте инструмент check для проверки конфигурации и состояния соединения устройства.

      sudo iotedge check
      

    Примечание.

    На недавно подготовленном устройстве может возникнуть ошибка, связанная с IoT Edge Hub:

    × готовность к эксплуатации: каталог хранилища Edge Hub сохраняется в файловой системе узла — ошибка

    Не удалось проверить текущее состояние контейнера edgeHub

    Эта ошибка ожидается на недавно подготовленном устройстве, так как модуль шлюза IoT Edge не запущен. Чтобы устранить ошибку, в IoT Hub задайте модули для устройства и создайте развертывание. Создание развертывания для устройства запускает модули на устройстве, включая модуль IoT Edge Hub.

При создании нового устройства IoT Edge отображается код состояния 417— конфигурация развертывания устройства не задана на портале Azure. Это состояние является нормальным и означает, что устройство готово к развертыванию модуля.

Удаление IoT Edge для Linux в Windows

Чтобы удалить Azure IoT Edge для Linux на Windows установке с устройства, выполните следующие действия.

  1. Откройте Settings на Windows.
  2. Выберите Установка и удаление программ.
  3. Выберите приложение Azure IoT Edge.
  4. Выберите Удалить.

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