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


Запуск Azure IoT Edge на виртуальных машинах Ubuntu

Применимо к:значок IoT Edge 1.1

Это важно

Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г.. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в статье Update IoT Edge.

Среда выполнения Azure IoT Edge превращает устройство в устройство IoT Edge. среда выполнения может быть развернута на любых устройствах — от Raspberry Pi до промышленного сервера. После настройки устройства с помощью среды выполнения IoT Edge можно приступить к развертыванию в ней бизнес-логики из облака.

Дополнительные сведения о работе среды выполнения IoT Edge и ее компонентах см. в статье Общие сведения о среде выполнения Azure IoT Edge и ее архитектуре.

В этой статье перечислены шаги по развертыванию виртуальной машины Ubuntu 18.04 LTS с установленной средой выполнения Azure IoT Edge и настройкой с помощью предварительно предоставленной строки подключения к устройству. Развертывание выполняется с помощью шаблона Azure Resource Manager на основе cloud-init, поддерживаемого в репозитории проектов iotedge-vm-deploy.

При первой загрузке виртуальная машина устанавливает последнюю версию среды выполнения Azure IoT Edge через cloud-init. Она также задает предоставленную строку подключения перед запуском среды выполнения, что позволяет легко настраивать и подключать устройство IoT Edge без необходимости запуска сеанса SSH или удаленного рабочего стола.

Разверните, используя кнопку "Развернуть в Azure"

Кнопка "Развернуть в Azure" позволяет упростить развертывание шаблонов Azure Resource Manager, поддерживаемых на GitHub. В этом разделе показано использование кнопки "Развернуть в Azure", содержащейся в репозитории проекта iotedge-vm-deploy .

  1. Мы развернем виртуальную машину Linux с поддержкой Azure IoT Edge с помощью шаблона Iotedge-vm-deploy Azure Resource Manager. Чтобы начать, нажмите кнопку ниже:

    Кнопка «Развернуть в Azure» для iotedge-vm-deploy

  2. В открывшемся окне заполните доступные поля формы.

    Снимок экрана с шаблоном iotedge-vm-deploy

    Поле Описание
    Подписка Активная подписка Azure для развертывания виртуальной машины.
    Группа ресурсов Существующая или только что созданная группа ресурсов, содержащая виртуальную машину и связанные с ней ресурсы.
    Регион Географический регион для развертывания виртуальной машины, это значение по умолчанию соответствует расположению выбранной группы ресурсов.
    Префикс метки DNS Требуемое значение по вашему выбору, которое используется для добавления префикса имени узла виртуальной машины.
    Имя администратора Имя пользователя, которому будут предоставлены корневые привилегии при развертывании.
    Строка подключения устройства Строка подключения для устройства, созданного в вашем определённом IoT-центре.
    Размер виртуальной машины Размер развертываемой виртуальной машины.
    Версия ОС Ubuntu Версия операционной системы Ubuntu, устанавливаемая на базовую виртуальную машину.
    Тип аутентификации Выберите sshPublicKey или пароль в зависимости от ваших предпочтений.
    Пароль или ключ администратора Значение открытого ключа SSH или значение пароля в зависимости от выбранного типа проверки подлинности.

    Когда все поля были заполнены, нажмите кнопку внизу, чтобы перейти к Next : Review + create месту, где можно просмотреть условия и нажать кнопку "Создать ", чтобы начать развертывание.

  3. Убедитесь, что развертывание успешно завершено. Ресурс виртуальной машины должен быть развернут в выбранной группе ресурсов. Запишите имя компьютера, оно должно быть указано в формате vm-0000000000000. Кроме того, запишите связанное DNS-имя, которое должно быть в формате <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    DNS-имя указано в разделе Обзор развернутой виртуальной машины на портале Azure.

  4. Если после завершения установки вы хотите подключиться к этой виртуальной машине по протоколу SSH, используйте соответствующее DNS-имя с помощью команды: ssh <adminUsername>@<DNS_Name>

Развертывание с помощью Azure CLI

  1. Убедитесь, что вы установили расширение IoT для Azure CLI.

    az extension add --name azure-iot
    
  2. Затем, если вы используете Azure CLI на настольном компьютере, сначала выполните вход:

    az login
    
  3. Если у вас несколько подписок, выберите ту, которую необходимо использовать:

    1. Отобразите список подписок:

      az account list --output table
      
    2. Скопируйте поле SubscriptionID подписки, которую необходимо использовать.

    3. Укажите в рабочей подписке идентификатор, который вы скопировали:

      az account set -s <SubscriptionId>
      
  4. Создайте группу ресурсов (или выберите уже имеющуюся на следующих этапах):

    az group create --name IoTEdgeResources --location westus2
    
  5. Создайте виртуальную машину:

    Чтобы использовать authenticationTypepassword, см. следующий пример:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    Для проверки подлинности с помощью ключа SSH укажите authenticationTypesshPublicKey, а затем укажите значение ключа SSH в параметре adminPasswordOrKey. Ниже приведен соответствующий пример.

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. Убедитесь, что развертывание успешно завершено. Ресурс виртуальной машины должен быть развернут в выбранной группе ресурсов. Запишите имя компьютера, оно должно быть указано в формате vm-0000000000000. Кроме того, обратите внимание на связанное DNS-имя, которое должно быть в формате <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    DNS-имя можно получить из выходных данных в формате JSON из предыдущего шага в разделе outputs как часть общедоступной записи SSH. Значение этой записи можно использовать для подключения к только что развернутой машине по протоколу SSH.

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    DNS-имя также указано в разделе Обзор развернутой виртуальной машины на портале Azure.

  7. Если после завершения установки вы хотите подключиться к этой виртуальной машине по протоколу SSH, используйте соответствующее DNS-имя с помощью команды: ssh <adminUsername>@<DNS_Name>

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

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

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

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

Если вы хотите открыть порты для доступа к виртуальной машине через SSH или другие входящие подключения, ознакомьтесь с документацией по виртуальным машинам Azure по открытию портов и конечных точек на виртуальной машине Linux.