Ausführen von virtuellen Computern vom Typ „Azure IoT Edge unter Ubuntu“

Gilt für:Häkchen für IoT Edge 1.5 IoT Edge 1.5 IoT Edge 1.4 Häkchen IoT Edge 1.4

Wichtig

IoT Edge 1.5 LTS und IoT Edge 1.4 LTS sind unterstützte Releases. Das Dienstende von IoT Edge 1.4 LTS wird am 12. November 2024 erreicht. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

Die Azure IoT Edge-Runtime verwandelt ein Gerät in ein IoT Edge-Gerät. Die Runtime kann auf verschiedensten Geräten bereitgestellt werden – vom kleinen Raspberry Pi bis hin zum großen industriellen Server. Sobald ein Gerät mit der IoT Edge-Runtime konfiguriert wurde, können Sie damit beginnen, die Geschäftslogik darauf in der Cloud bereitzustellen.

Weitere Informationen zur Funktionsweise und zu den Komponenten der IoT Edge-Runtime finden Sie unter Grundlegendes zur Azure IoT Edge-Runtime und ihrer Architektur.

In diesem Artikel werden die Schritte zum Bereitstellen einer VM mit Ubuntu 20.04 LTS und installierter Azure IoT Edge-Runtime beschrieben, die mithilfe einer vorab bereitgestellten Geräte-Verbindungszeichenfolge installiert und konfiguriert wurde. Die Bereitstellung erfolgt mithilfe einer cloud-init-basierten Azure Resource Manager-Vorlage, die im Projektrepository iotedge-vm-deploy verwaltet wird.

Beim ersten Start wird vom virtuellen Ubuntu Computer die neueste Version der Azure IoT Edge-Runtime über „cloud-init“ installiert. Außerdem wird von ihm vor dem Start der Laufzeit eine angegebene Verbindungszeichenfolge festgelegt, sodass Sie das IoT Edge-Gerät problemlos konfigurieren und verbinden können, ohne eine SSH- oder Remotedesktop-Sitzung starten zu müssen.

Bereitstellen mithilfe der Schaltfläche „In Azure bereitstellen“

Die Schaltfläche In Azure bereitstellen ermöglicht eine optimierte Bereitstellung von Azure Resource Manager-Vorlagen, die auf GitHub verwaltet verwenden. In diesem Abschnitt wird die Verwendung der Schaltfläche „In Azure bereitstellen“ im Projektrepository iotedge-vm-deploy gezeigt.

  1. Sie stellen mithilfe der Azure Resource Manager-Vorlage „iotedge-vm-deploy“ eine Azure IoT Edge-fähige Linux-VM bereit. Wählen Sie zuerst die folgende Schaltfläche aus:

    Schaltfläche „In Azure bereitstellen“ für „iotedge-vm-deploy“

  2. Füllen Sie im neu gestarteten Fenster die verfügbaren Formularfelder aus:

    Screenshot: Vorlage „iotedge-vm-deploy“

    Feld BESCHREIBUNG
    Abonnement Das aktive Azure-Abonnement, in dem der virtuelle Computer bereitgestellt werden soll.
    Ressourcengruppe Eine vorhandene oder neu erstellte Ressourcengruppe, die den virtuellen Computer und die ihm zugeordneten Ressourcen enthalten soll.
    Region Die geografische Region, in der der virtuelle Computer bereitgestellt werden soll. Dieser Wert wird standardmäßig auf den Speicherort der ausgewählten Ressourcengruppe festgelegt.
    Präfix der DNS-Bezeichnung Ein erforderlicher Wert Ihrer Wahl, der dem Hostnamen des virtuellen Computers vorangestellt werden soll.
    Benutzername des Administrators Ein Benutzername, der Rootberechtigungen für die Bereitstellung erhält.
    Verbindungszeichenfolge für das Gerät Eine Geräte-Verbindungszeichenfolge für ein Gerät, das in Ihrem vorgesehenen IoT Hub erstellt wurde.
    VM-Größe Die Größe des bereitzustellenden virtuellen Computers.
    Ubuntu-Betriebssystemversion Die Version des Ubuntu-Betriebssystems, die auf dem virtuellen Basiscomputer installiert werden soll.
    Authentifizierungstyp Wählen Sie je nach Ihrer Einstellung sshPublicKey oder password aus.
    Administratorkennwort oder Schlüssel Der Wert des öffentlichen SSH-Schlüssels oder der Wert des Kennworts, je nach der Auswahl des Authentifizierungstyps.

    Wenn alle Felder ausgefüllt wurden, wählen Sie unten die Schaltfläche aus, um zu Next : Review + create wechseln, wo Sie die Bedingungen überprüfen können. Wählen Sie danach Erstellen aus, um mit der Bereitstellung zu beginnen.

  3. Überprüfen Sie, ob die Bereitstellung erfolgreich abgeschlossen wurde. In der ausgewählten Ressourcengruppe wird eine VM-Ressource bereitgestellt. Notieren Sie sich den Computernamen, der das Format vm-0000000000000 haben sollte. Überprüfen Sie darüber hinaus auch den entsprechenden DNS-Namen. Dieser sollte das Format „<dnsLabelPrefix>.<location>.cloudapp.azure.com“ aufweisen.

    Den DNS-Namen finden Sie im Azure-Portal im Abschnitt Übersicht des eben bereitgestellten virtuellen Computers.

    Screenshot mit dem DNS-Namen der IoT Edge-VM

  4. Wenn Sie nach dem Setup eine SSH-Verbindung mit diesem virtuellen Computer herstellen möchten, verwenden Sie den zugeordneten DNS-Namen mit folgendem Befehl: ssh <adminUsername>@<DNS_Name>.

Bereitstellen über die Azure-Befehlszeilenschnittstelle

  1. Vergewissern Sie sich wie folgt, dass die IoT-Erweiterung der Azure-Befehlszeilenschnittstelle installiert ist:

    az extension add --name azure-iot
    
  2. Wenn Sie die Azure-Befehlszeilenschnittstelle auf Ihrem Desktop verwenden, melden Sie sich als Nächstes an:

    az login
    
  3. Wenn Sie mehrere Abonnements haben, wählen Sie das Abonnement aus, das Sie verwenden möchten:

    1. Listen Sie Ihre Abonnements auf:

      az account list --output table
      
    2. Kopieren Sie das Feld „SubscriptionID“ für das Abonnement, das Sie verwenden möchten.

    3. Legen Sie Ihr Arbeitsabonnement mit der kopierten ID fest:

      az account set -s <SubscriptionId>
      
  4. Erstellen Sie eine neue Ressourcengruppe (oder geben Sie in den nächsten Schritten eine vorhandene Ressourcengruppe an):

    az group create --name IoTEdgeResources --location westus2
    
  5. Erstellen Sie einen neuen virtuellen Computer:

    Wenn Sie einen authenticationType von password verwenden möchten, sehen Sie sich das folgende Beispiel an:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/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>"
    

    Wenn Sie sich mit einem SSH-Schlüssel authentifizieren möchten, geben Sie dazu einen authenticationType von sshPublicKey und dann den Wert des SSH-Schlüssels im Parameter adminPasswordOrKey an. Siehe folgendes Beispiel:

    #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/main/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. Überprüfen Sie, ob die Bereitstellung erfolgreich abgeschlossen wurde. In der ausgewählten Ressourcengruppe sollte eine VM-Ressource bereitgestellt sein. Notieren Sie sich den Computernamen, der das Format vm-0000000000000 haben sollte. Überprüfen Sie darüber hinaus auch den entsprechenden DNS-Namen. Dieser sollte das Format „<dnsLabelPrefix>.<location>.cloudapp.azure.com“ aufweisen.

    Der DNS-Name kann aus der JSON-formatierten Ausgabe des vorherigen Schritts abgerufen werden, die im Abschnitt outputs als Teil des Eintrags public SSH enthalten ist. Der Wert dieses Eintrags kann verwendet werden, um eine SSH-Verbindung mit dem neu bereitgestellten Computer herzustellen.

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

    Der DNS-Name kann auch im Azure-Portal aus dem Abschnitt Übersicht des neu bereitgestellten virtuellen Computers abgerufen werden.

    Screenshot mit dem DNS-Namen der IoT Edge-VM

  7. Wenn Sie nach dem Setup eine SSH-Verbindung mit diesem virtuellen Computer herstellen möchten, verwenden Sie den zugeordneten DNS-Namen mit folgendem Befehl: ssh <adminUsername>@<DNS_Name>.

Nächste Schritte

Nachdem Sie nun ein IoT Edge-Gerät für die installierte Runtime bereitgestellt haben, können Sie IoT Edge-Module bereitstellen.

Wenn Sie Probleme mit der ordnungsgemäßen Installation der IoT Edge-Runtime haben, lesen Sie die Informationen auf der Seite Problembehandlung.

Weitere Informationen zum Aktualisieren einer vorhandenen Installation auf die aktuelle Version von IoT Edge finden Sie unter Aktualisieren des IoT Edge-Sicherheitsdaemons und der Runtime.

Wenn Sie Ports für den Zugriff auf die VM über SSH oder andere eingehende Verbindungen öffnen möchten, lesen Sie in der Dokumentation zu Azure-VMs das Thema Öffnen von Ports und Endpunkten für eine Linux-VM.