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


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

Область применения: Флажок IoT Edge 1.4 IoT Edge 1.4

Внимание

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

В этой статье приведены инструкции по автоматической подготовке Azure IoT Edge для Linux на устройстве Windows с помощью доверенного платформенного модуля (TPM). Вы можете автоматически подготовить устройства Azure IoT Edge с помощью службы подготовки устройств Центр Интернета вещей Azure. Если вы не знакомы с процессом автоматической подготовки, ознакомьтесь с обзором подготовки, прежде чем продолжить.

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

  • Автоматическая подготовка linux на устройстве Windows с физическим оборудованием доверенного платформенного модуля.
  • Автоматическая подготовка Linux на устройстве Windows с помощью имитированного доверенного платформенного модуля. Мы рекомендуем эту методологию только в качестве сценария тестирования. Имитированный TPM не обеспечивает ту же безопасность, что и физический TPM.

Для этого необходимо выполнить следующие задачи:

  • установка IoT Edge для Linux в Windows;
  • получение сведений о доверенном платформенном модуле от устройства;
  • Создание отдельной регистрации устройства.
  • подготовка устройства к работе с использованием сведений доверенного платформенного модуля.

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

Облачные ресурсы

  • Активный Центр Интернета вещей
  • Экземпляр службы подготовки устройств Центр Интернета вещей в Azure, связанный с центром Интернета вещей

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

Устройство 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, необходимо создать виртуальный коммутатор. Дополнительные сведения см. статье о создании виртуального коммутатора для Linux в Windows.
    • В версиях Windows для настольных систем есть коммутатор по умолчанию, который можно использовать для установки EFLOW. При необходимости можно создать собственный настраиваемый виртуальный коммутатор.

Совет

Если вы собираетесь использовать модули Linux с ускорением GPU в развертывании Azure IoT Edge для Linux в Windows, есть несколько вариантов настройки.

Вам потребуется установить правильные драйверы в зависимости от архитектуры GPU, а также может потребоваться доступ к сборке программы предварительной оценки Windows. Сведения о том, как определить и выполнить предварительные условия для настройки, см. в статье об ускорении 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
    

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

Примечание.

TPM 2.0 требуется при использовании аттестации доверенного платформенного модуля со службой подготовки устройств.

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

Установка 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_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

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

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

    Можно указать нестандартные каталоги для установки IoT Edge для Linux в Windows и VHDX, добавив параметры 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.

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

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

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

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

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

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

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

    Успешное развертывание будет говорить

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

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

Включение сквозного режиме доверенного платформенного модуля

IoT Edge для Linux на виртуальной машине Windows имеет функцию доверенного платформенного модуля, которая может быть включена или отключена. По умолчанию она отключена. Если эта функция включена, виртуальная машина может получить доступ к TPM хост-компьютера.

  1. Откройте сеанс PowerShell с повышенными привилегиями.

  2. Если вы этого еще не сделали, настройте для устройства политику выполнения AllSigned, чтобы можно было выполнять функции PowerShell для IoT Edge для Linux в Windows.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  3. Включите поддержку доверенного платформенного модуля.

    Set-EflowVmFeature -feature 'DpsTpm' -enable
    

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

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

Ключ подтверждения является уникальным для каждого микросхемы доверенного платформенного модуля. Он получен от производителя микросхем TPM, связанного с ним. Например, вы можете получить уникальный идентификатор регистрации для устройства доверенного платформенного модуля, создав хэш SHA-256 от ключа подтверждения.

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

  1. Откройте сеанс PowerShell с повышенными привилегиями.

  2. Выполните команду .

    Get-EflowVmTpmProvisioningInfo | Format-List
    

Создание регистрации службы подготовки устройств

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

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

Совет

Действия, описанные в этой статье, предназначены для портал Azure, но вы также можете создавать отдельные регистрации с помощью Azure CLI. Дополнительные сведения см. в разделе az iot dps enrollment. В команде интерфейса командной строки с помощью флага edge-enabled укажите, что регистрация предназначена для устройства IoT Edge.

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

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

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

    1. Для параметра Механизм выберите TPM.

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

    3. Укажите идентификатор устройства, если вы хотите. Если не указать идентификатор устройства, используется идентификатор регистрации.

    4. Выберите True , чтобы объявить, что виртуальная машина или физическое устройство — это устройство IoT Edge.

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

    6. При необходимости добавьте значение тега в исходное состояние двойника устройства. Теги можно использовать для указания групп устройств для развертывания модуля. Дополнительные сведения см. в разделе Развертывание модулей IoT Edge в большом масштабе.

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

После создания регистрации для устройства среда выполнения IoT Edge может автоматически подготавливать устройство во время установки.

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

  1. Откройте сеанс PowerShell с повышенными привилегиями на устройстве с Windows.

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

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE"
    

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

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE" -registrationId "REGISTRATION_ID_HERE"
    

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

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

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

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

Чтобы убедиться, что 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:

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

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

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

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

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

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

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

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

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