Uruchamianie usługi Azure IoT Edge na maszynach wirtualnych z systemem Ubuntu

Dotyczy:IoT Edge 1.4 checkmark IoT Edge 1.4

Ważne

Azure IoT Edge1.4 jest obsługiwaną wersją. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Środowisko uruchomieniowe usługi Azure IoT Edge zamienia urządzenie w urządzenie usługi IoT Edge. Środowisko uruchomieniowe można wdrożyć na urządzeniach tak małych jak Raspberry Pi lub tak dużych jak serwer przemysłowy. Po skonfigurowaniu urządzenia przy użyciu środowiska uruchomieniowego usługi IoT Edge można rozpocząć wdrażanie na nim logiki biznesowej z chmury.

Aby dowiedzieć się więcej na temat działania środowiska uruchomieniowego usługi IoT Edge i składników, zobacz Omówienie środowiska uruchomieniowego usługi Azure IoT Edge i jego architektury.

W tym artykule wymieniono kroki wdrażania maszyny wirtualnej z systemem Ubuntu 20.04 LTS przy użyciu zainstalowanego i skonfigurowanego środowiska uruchomieniowego usługi Azure IoT Edge przy użyciu wstępnie dostarczonego urządzenia parametry połączenia. Wdrożenie odbywa się przy użyciu opartego na chmurze szablonu usługi Azure Resource Manager przechowywanego w repozytorium projektu iotedge-vm-deploy.

Podczas pierwszego rozruchu maszyna wirtualna instaluje najnowszą wersję środowiska uruchomieniowego usługi Azure IoT Edge za pośrednictwem pakietu cloud-init. Ustawia również dostarczone parametry połączenia przed rozpoczęciem środowiska uruchomieniowego, co umożliwia łatwe konfigurowanie i łączenie urządzenia usługi IoT Edge bez konieczności uruchamiania sesji SSH lub pulpitu zdalnego.

Wdrażanie przy użyciu przycisku Wdróż na platformie Azure

Przycisk Wdróż na platformie Azure umożliwia usprawnione wdrażanie szablonów usługi Azure Resource Manager obsługiwanych w usłudze GitHub. W tej sekcji przedstawiono użycie przycisku Wdróż na platformie Azure zawartego w repozytorium projektu iotedge-vm-deploy .

  1. Wdrożymy maszynę wirtualną z systemem Linux z obsługą usługi Azure IoT Edge przy użyciu szablonu iotedge-vm-deploy usługi Azure Resource Manager. Aby rozpocząć, kliknij poniższy przycisk:

    Deploy to Azure Button for iotedge-vm-deploy

  2. W nowo uruchomionym oknie wypełnij dostępne pola formularza:

    Screenshot showing the iotedge-vm-deploy template

    Pole Opis
    Subskrypcja Aktywna subskrypcja platformy Azure do wdrożenia maszyny wirtualnej.
    Grupa zasobów: Istniejąca lub nowo utworzona grupa zasobów zawierająca maszynę wirtualną i skojarzone z nią zasoby.
    Region Region geograficzny, w którym ma zostać wdrożona maszyna wirtualna, ta wartość jest domyślnie ustawiona na lokalizację wybranej grupy zasobów.
    Prefiks etykiety DNS Wymagana wartość wybranej wartości służy do prefiksu nazwy hosta maszyny wirtualnej.
    nazwa użytkownika Administracja Nazwa użytkownika, która będzie udostępniana uprawnienia główne we wdrożeniu.
    Parametry połączenia urządzenia Urządzenie parametry połączenia dla urządzenia utworzonego w ramach zamierzonego centrum IoT Hub.
    Rozmiar maszyny wirtualnej Rozmiar maszyny wirtualnej do wdrożenia.
    Wersja systemu operacyjnego Ubuntu Wersja systemu operacyjnego Ubuntu, która ma być zainstalowana na podstawowej maszynie wirtualnej.
    Typ uwierzytelnienia Wybierz pozycję sshPublicKey lub hasło w zależności od preferencji.
    Administracja hasło lub klucz Wartość klucza publicznego SSH lub wartość hasła w zależności od wybranego typu uwierzytelniania.

    Po wypełnieniu wszystkich pól kliknij przycisk u dołu, aby przejść do Next : Review + create miejsca, w którym można przejrzeć warunki, a następnie kliknij przycisk Utwórz , aby rozpocząć wdrażanie.

  3. Sprawdź, czy wdrożenie zakończyło się pomyślnie. Zasób maszyny wirtualnej powinien zostać wdrożony w wybranej grupie zasobów. Zanotuj nazwę maszyny, która powinna mieć format vm-0000000000000. Zanotuj również powiązaną nazwę DNS, która powinna być w formacie <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    Nazwa DNS znajduje się w sekcji Przegląd nowo wdrożonej maszyny wirtualnej w witrynie Azure Portal.

    Screenshot showing the dns name of the iotedge vm

  4. Jeśli chcesz połączyć się z tą maszyną wirtualną po skonfigurowaniu za pomocą protokołu SSH, użyj skojarzonej nazwy DNS z poleceniem : ssh <adminUsername>@<DNS_Name>

Wdrażanie z poziomu interfejsu wiersza polecenia platformy Azure

  1. Upewnij się, że zainstalowano rozszerzenie interfejsu wiersza polecenia platformy Azure z:

    az extension add --name azure-iot
    
  2. Następnie, jeśli używasz interfejsu wiersza polecenia platformy Azure na pulpicie, zacznij od zalogowania się:

    az login
    
  3. Jeśli masz wiele subskrypcji, wybierz subskrypcję, której chcesz użyć:

    1. Wyświetl listę swoich subskrypcji:

      az account list --output table
      
    2. Skopiuj pole SubscriptionID dla subskrypcji, której chcesz użyć.

    3. Ustaw subskrypcję roboczą z skopiowanymi identyfikatorami:

      az account set -s <SubscriptionId>
      
  4. Utwórz nową grupę zasobów (lub określ istniejącą w następnych krokach):

    az group create --name IoTEdgeResources --location westus2
    
  5. Utwórz nową maszynę wirtualną:

    Aby użyć wartości authenticationType klasy password, zobacz poniższy przykład:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/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='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    Aby uwierzytelnić się przy użyciu klucza SSH, możesz to zrobić, określając parametr authenticationType wartości sshPublicKey, a następnie podaj wartość klucza SSH w parametrze adminPasswordOrKey . Przykład przedstawiono poniżej.

    #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.4/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. Sprawdź, czy wdrożenie zakończyło się pomyślnie. Zasób maszyny wirtualnej powinien zostać wdrożony w wybranej grupie zasobów. Zanotuj nazwę maszyny, która powinna mieć format vm-0000000000000. Zanotuj również powiązaną nazwę DNS, która powinna być w formacie <dnsLabelPrefix>.<location>.cloudapp.azure.com.

    Nazwę DNS można uzyskać z danych wyjściowych w formacie JSON poprzedniego kroku w sekcji danych wyjściowych w ramach publicznego wpisu SSH. Wartość tego wpisu może służyć do SSH na nowo wdrożonej maszynie.

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

    Nazwę DNS można również uzyskać w sekcji Przegląd nowo wdrożonej maszyny wirtualnej w witrynie Azure Portal.

    Screenshot showing the dns name of the iotedge vm

  7. Jeśli chcesz połączyć się z tą maszyną wirtualną po skonfigurowaniu za pomocą protokołu SSH, użyj skojarzonej nazwy DNS z poleceniem : ssh <adminUsername>@<DNS_Name>

Następne kroki

Teraz, gdy masz urządzenie usługi IoT Edge aprowizowane przy użyciu zainstalowanego środowiska uruchomieniowego, możesz wdrożyć moduły usługi IoT Edge.

Jeśli masz problemy z prawidłowym instalowaniem środowiska uruchomieniowego usługi IoT Edge, zapoznaj się ze stroną rozwiązywania problemów.

Aby zaktualizować istniejącą instalację do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie demona zabezpieczeń usługi IoT Edge i środowiska uruchomieniowego.

Jeśli chcesz otworzyć porty w celu uzyskania dostępu do maszyny wirtualnej za pośrednictwem protokołu SSH lub innych połączeń przychodzących, zapoznaj się z dokumentacją usługi Azure Virtual Machines dotyczącą otwierania portów i punktów końcowych na maszynie wirtualnej z systemem Linux