Freigeben über


Erstellen und Bereitstellen von IoT Edge für Linux auf Windows-Geräten im großen Stil mithilfe von symmetrischen Schlüsseln

Gilt für:yes icon IoT Edge 1.1

Von Bedeutung

Das Ende des Supports für IoT Edge 1.1 war der 13. Dezember 2022. Überprüfen Sie den Microsoft Product Lifecycle , um Informationen darüber zu erhalten, wie dieses Produkt, dieser Dienst, die Technologie oder die API unterstützt wird. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.

Dieser Artikel enthält End-to-End-Anweisungen für die automatische Bereitstellung eines oder mehrerer IoT Edge für Linux auf Windows-Geräten mit symmetrischen Schlüsseln. Sie können Azure IoT Edge-Geräte automatisch mit dem Azure IoT Hub-Gerätebereitstellungsdienst (DPS) bereitstellen. Wenn Sie mit dem Prozess der automatischen Bereitstellung noch nicht vertraut sind, lesen Sie die Übersicht über die Bereitstellung , bevor Sie fortfahren.

Die Aufgaben sind wie folgt:

  1. Erstellen Sie entweder eine einzelne Registrierung für ein einzelnes Gerät oder eine Gruppenregistrierung für eine Gruppe von Geräten.
  2. Stellen Sie einen virtuellen Linux-Computer mit installierter IoT Edge-Runtime bereit, und verbinden Sie ihn mit dem IoT Hub.

Der Nachweis des symmetrischen Schlüssels ist eine einfache Methode zum Authentifizieren eines Geräts mit einer Device Provisioning Service-Instanz. Diese Nachweismethode stellt eine „Hallo Welt“-Umgebung für Entwickler bereit, die noch nicht mit der Gerätebereitstellung vertraut sind oder keine strengen Sicherheitsanforderungen haben. Der Gerätenachweis mithilfe eines TPM - oder X.509-Zertifikats ist sicherer und sollte für strengere Sicherheitsanforderungen verwendet werden.

Voraussetzungen

Cloudressourcen

  • Ein aktiver IoT-Hub
  • Eine Instanz des IoT Hub Device Provisioning Service (Gerätebereitstellungsdienst) in Azure, die mit Ihrem IoT-Hub verknüpft ist

Geräteanforderungen

Ein Windows-Gerät mit den folgenden Mindestanforderungen:

  • Systemanforderungen

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 und Windows Server 2019 Mindestbuild 17763 mit allen aktuellen kumulativen Updates installiert.
  • Hardwareanforderungen

    • Mindestens erforderlicher freier Arbeitsspeicher: 1 GB
    • Mindestens erforderlicher freier Speicherplatz: 10 GB
  • Virtualisierungsunterstützung

  • Netzwerkunterstützung

    • Windows Server umfasst keinen Standardswitch. Bevor Sie EFLOW auf einem Windows Server-Gerät bereitstellen können, müssen Sie einen virtuellen Switch erstellen. Weitere Informationen finden Sie unter Erstellen eines virtuellen Switches für Linux unter Windows.
    • Windows Desktop-Versionen umfassen einen Standardswitch, der für die EFLOW-Installation verwendet werden kann. Bei Bedarf können Sie einen benutzerdefinierten virtuellen Switch erstellen.

Tipp

Wenn Sie GPU-beschleunigte Linux-Module in Ihrem Azure IoT Edge für Linux unter Windows-Bereitstellung verwenden möchten, gibt es mehrere Konfigurationsoptionen.

Abhängig von Ihrer GPU-Architektur müssen Sie die richtigen Treiber installieren, und Sie benötigen möglicherweise Zugriff auf einen Windows-Insider-Build. Um Ihre Konfigurationsanforderungen zu ermitteln und diese Voraussetzungen zu erfüllen, lesen Sie die GPU-Beschleunigung für Azure IoT Edge für Linux unter Windows.

Nehmen Sie sich jetzt die Zeit, die Voraussetzungen für die GPU-Beschleunigung zu erfüllen. Sie müssen den Installationsvorgang neu starten, wenn Sie sich während der Installation für die Verwendung der GPU-Beschleunigung entscheiden.

Entwicklertools

Sie können entweder PowerShell oder Windows Admin Center verwenden, um Ihre IoT Edge-Geräte zu verwalten. Jedes Dienstprogramm verfügt über eigene Voraussetzungen:

Wenn Sie PowerShell verwenden möchten, führen Sie die folgenden Schritte aus, um Ihr Zielgerät für die Installation von Azure IoT Edge für Linux unter Windows und die Bereitstellung des virtuellen Linux-Computers vorzubereiten:

  1. Legen Sie die Ausführungsrichtlinie auf dem Zielgerät auf AllSigned fest. Sie können die aktuelle Ausführungsrichtlinie in einer PowerShell-Eingabeaufforderung mit erhöhten Rechten mit dem folgenden Befehl überprüfen:

    Get-ExecutionPolicy -List
    

    Wenn die Ausführungsrichtlinie von local machine nicht AllSigned ist, können Sie die Ausführungsrichtlinie wie folgt festlegen:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Weitere Informationen zum Azure IoT Edge für Linux unter Windows PowerShell-Modul finden Sie in der PowerShell-Funktionsreferenz.

DPS-Anmeldung erstellen

Erstellen Sie eine Registrierung, um ein oder mehrere Geräte über DPS bereitzustellen.

Wenn Sie ein einzelnes IoT Edge-Gerät bereitstellen möchten, erstellen Sie eine einzelne Registrierung. Wenn Sie mehrere Geräte bereitstellen müssen, führen Sie die Schritte zum Erstellen einer DPS-Gruppenregistrierung aus.

Wenn Sie einen Registrierungseintrag in DPS erstellen, haben Sie die Möglichkeit, einen anfänglichen Geräte-Twin-Zustand zu deklarieren. Im Gerätezwilling können Sie Tags zum Gruppieren von Geräten nach jeder beliebigen Metrik, die Sie in Ihrer Lösung benötigen, wie Region, Umgebung, Standort oder Gerätetyp, festlegen. Diese Tags werden verwendet, um automatische Bereitstellungen zu erstellen.

Weitere Informationen zu Registrierungen im Gerätebereitstellungsdienst finden Sie unter Verwalten von Geräteregistrierungen.

Einen individuellen DPS-Antrag erstellen

Tipp

Die Schritte in diesem Artikel gelten für das Azure-Portal. Sie können individuelle Registrierungen aber auch mithilfe der Azure CLI erstellen. Weitere Informationen finden Sie unter az iot dps enrollment. Verwenden Sie als Teil des CLI-Befehls den edge-enabled Schalter, um anzugeben, dass die Registrierung für ein IoT Edge-Gerät erfolgt.

  1. Navigieren Sie im Azure-Portal zu Ihrer Instanz des IoT Hub-Gerätebereitstellungsdiensts.

  2. Wählen Sie unter "Einstellungen" die Option " Registrierungen verwalten" aus.

  3. Wählen Sie "Einzelne Registrierung hinzufügen " aus, und führen Sie dann die folgenden Schritte aus, um die Registrierung zu konfigurieren:

    1. Wählen Sie für "Mechanismus" den symmetrischen Schlüssel aus.

    2. Geben Sie eine eindeutige Registrierungs-ID für Ihr Gerät an.

    3. Geben Sie optional eine IoT Hub-Geräte-ID für Ihr Gerät an. Sie können mithilfe von Geräte-IDs ein einzelnes Gerät als Ziel für die Modulbereitstellung festlegen. Wenn Sie keine Geräte-ID angeben, wird die Registrierungs-ID verwendet.

    4. Wählen Sie True aus, um zu deklarieren, dass die Registrierung für ein IoT Edge-Gerät ist.

    5. Sie können optional einen Tagwert zum Initial Device Twin State hinzufügen. Sie können mithilfe von Tags Gruppen von Geräten als Ziel für die Modulbereitstellung festlegen. Beispiel:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Wählen Sie "Speichern" aus.

  4. Kopieren Sie den Primärschlüsselwert der einzelnen Registrierung, der beim Installieren der IoT Edge-Laufzeit verwendet werden soll.

Nachdem nun eine Registrierung für dieses Gerät vorhanden ist, kann die IoT Edge-Runtime das Gerät während der Installation automatisch bereitstellen.

Installieren von IoT Edge

Stellen Sie Azure IoT Edge für Linux unter Windows auf Ihrem Zielgerät bereit.

Installieren Sie IoT Edge für Linux unter Windows auf Ihrem Zielgerät.

Hinweis

Das folgende PowerShell-Verfahren beschreibt, wie Sie IoT Edge für Linux unter Windows auf dem lokalen Gerät bereitstellen. Zum Bereitstellen auf einem Remotezielgerät mithilfe von PowerShell können Sie Remote PowerShell verwenden, um eine Verbindung mit einem Remotegerät herzustellen und diese Befehle remote auf diesem Gerät auszuführen.

  1. Führen Sie in einer PowerShell-Sitzung mit erhöhten Rechten die folgenden Befehle nacheinander aus, um IoT Edge für Linux unter Windows herunterzuladen.

    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEflowMSI" -OutFile $msiPath
    
  2. Installieren Sie IoT Edge für Linux unter Windows auf Ihrem Gerät.

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

    Sie können benutzerdefinierte Verzeichnisse für die Installation von IoT Edge für Linux unter Windows und für VHDX angeben, indem Sie dem Installationsbefehl die Parameter INSTALLDIR="<FULLY_QUALIFIED_PATH>" und VHDXDIR="<FULLY_QUALIFIED_PATH>" hinzufügen. Wenn Sie z. B. den Ordner "D:\EFLOW " für die Installation und den D:\EFLOW-VHDX für die VHDX verwenden möchten, können Sie das folgende PowerShell-Cmdlet verwenden.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Legen Sie die Ausführungsrichtlinie auf dem Zielgerät auf AllSigned fest, wenn dies noch nicht so eingestellt ist. In den PowerShell-Voraussetzungen finden Sie die Befehle, mit denen Sie die aktuelle Ausführungsrichtlinie überprüfen und auf AllSigned festlegen können.

  4. Erstellen Sie die Implementierung des IoT Edge für Linux auf Windows. Die Bereitstellung erstellt Ihren virtuellen Linux-Computer und installiert die IoT Edge Runtime automatisch.

    Deploy-Eflow
    

    Tipp

    Standardmäßig erstellt der Befehl Deploy-Eflow Ihren Linux-VM mit 1 GB RAM, 16 vCPU-Kern und 16 GB Speicherplatz. Die Ressourcen, die Ihr VM benötigt, sind jedoch stark von den Workloads abhängig, die Sie bereitstellen. Wenn Ihr VM nicht über genügend Arbeitsspeicher verfügt, um Ihre Workloads zu unterstützen, kann er nicht gestartet werden.

    Sie können die verfügbaren Ressourcen des VM mithilfe der optionalen Parameter des Befehls Deploy-Eflow anpassen.

    Der folgende Befehl erstellt beispielsweise einen virtuellen Computer mit 4 vCPU-Kernen, 4 GB RAM (dargestellt in MB) und 20 GB Speicherplatz:

    Deploy-Eflow -cpuCount 4 -memoryInMB 4096 -vmDiskSize 20
    

    Informationen zu allen verfügbaren optionalen Parametern finden Sie unter PowerShell-Funktionen für IoT Edge für Linux unter Windows.

    Warnung

    Standardmäßig hat der virtuelle EFLOW-Linux-Computer keine DNS-Konfiguration. Bei Bereitstellungen mit dem DHCP wird versucht, die vom DHCP-Server weitergegebene DNS-Konfiguration abzurufen. Überprüfen Sie Ihre DNS-Konfiguration, um die Internetkonnektivität sicherzustellen. Weitere Informationen finden Sie unter AzEFLOW-DNS.

    Sie können Ihrer Bereitstellung eine GPU zuweisen, um GPU-beschleunigte Linux-Module zu aktivieren. Um Zugriff auf diese Features zu erhalten, müssen Sie die erforderlichen Komponenten installieren, die in der GPU-Beschleunigung für Azure IoT Edge für Linux unter Windows beschrieben sind.

    Um eine GPU-Passthrough zu verwenden, fügen Sie dem Befehl die Parameter gpuName, gpuPassthroughType und gpuCount hinzu Deploy-Eflow . Informationen zu allen verfügbaren optionalen Parametern finden Sie unter PowerShell-Funktionen für IoT Edge für Linux unter Windows.

    Warnung

    Das Aktivieren von Hardwaregeräte-Passthrough kann zu einem erhöhten Sicherheitsrisiko führen. Microsoft empfiehlt, nach Möglichkeit einen Risikominderungstreiber des Geräts vom Anbieter Ihrer GPU zu verwenden. Weitere Informationen finden Sie unter Bereitstellen von Grafikgeräten mit diskreter Gerätezuweisung.

  5. Geben Sie „Y“ ein, um den Lizenzbedingungen zuzustimmen.

  6. Geben Sie "O" oder "R" ein, um optionale Diagnosedaten je nach Ihren Wünschen ein- oder auszuschalten.

  7. Sobald die Bereitstellung abgeschlossen ist, meldet das PowerShell-Fenster die Bereitstellung erfolgreich.

    Eine erfolgreiche Bereitstellung zeigt am Ende der Nachrichten 'Bereitstellung erfolgreich' an, PNG.

    Nach einer erfolgreichen Bereitstellung können Sie Ihr Gerät einrichten.

Bereitstellen des Geräts mit seiner Cloud-Identität

Konfigurieren Sie Ihr Gerät mit den Informationen, die es zum Herstellen einer Verbindung mit dem Gerätebereitstellungsdienst und IoT Hub verwendet, sobald die Runtime auf Ihrem Gerät installiert ist.

Halten Sie die folgenden Informationen bereit:

  • Der DPS-ID-Bereichswert
  • Die von Ihnen erstellte Geräteregistrierungs-ID
  • Entweder der Primärschlüssel aus einer einzelnen Registrierung oder ein abgeleiteter Schlüssel für Geräte, die eine Gruppenregistrierung verwenden.

Sie können entweder PowerShell oder Windows Admin Center verwenden, um Ihr IoT Edge-Gerät bereitzustellen.

Führen Sie für PowerShell den folgenden Befehl mit den Platzhalterwerten aus, die mit Ihren eigenen Werten aktualisiert wurden:

Provision-EflowVm -provisioningType DpsSymmetricKey -​scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -symmKey PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE

Bestätigen einer erfolgreichen Installation

Vergewissern Sie sich, dass IoT Edge für Linux unter Windows erfolgreich auf Ihrem IoT Edge-Gerät installiert und konfiguriert wurde.

Sie können überprüfen, ob die individuelle Registrierung, die Sie im Gerätebereitstellungsdienst erstellt haben, verwendet wurde. Navigieren Sie im Azure-Portal zu Ihrer Instanz für den Gerätebereitstellungsdienst. Öffnen Sie die Registrierungsdetails für die von Ihnen erstellte individuelle Registrierung. Beachten Sie, dass der Status der Registrierung zugewiesen ist und die Geräte-ID wird aufgeführt.

  1. Melden Sie sich mithilfe des folgenden Befehls in Ihrer PowerShell-Sitzung bei Ihrem virtuellen IoT Edge für Linux-Computer unter Windows an.

    Connect-EflowVm
    

    Hinweis

    Das einzige Konto, das berechtigt ist, eine SSH-Verbindung zum virtuellen Computer herzustellen, ist der Benutzer, der die virtuelle Maschine erstellt hat.

  2. Sobald Sie angemeldet sind, können Sie die Liste der laufenden IoT Edge-Module mithilfe des folgenden Linux-Befehls überprüfen:

    sudo iotedge list
    
  3. Wenn Sie eine Problembehandlung für den IoT Edge-Dienst durchführen müssen, verwenden Sie die folgenden Linux-Befehle.

    1. Rufen Sie die Dienstprotokolle ab.

      sudo journalctl -u iotedge
      
    2. Verwenden Sie das Tool check, um die Konfiguration und den Verbindungsstatus des Geräts zu überprüfen.

      sudo iotedge check
      

    Hinweis

    Auf einem neu bereitgestellten Gerät wird möglicherweise ein Fehler im Zusammenhang mit dem IoT Edge-Hub angezeigt:

    × Produktionsbereitschaft: Das Speicherverzeichnis des Edge-Hubs wird im Hostdateisystem beibehalten – Fehler

    Der aktuelle Status des EdgeHub-Containers konnte nicht überprüft werden.

    Dieser Fehler wird auf einem neu bereitgestellten Gerät erwartet, da das IoT Edge-Hubmodul nicht ausgeführt wird. Um den Fehler zu beheben, legen Sie in IoT Hub die Module für das Gerät fest, und erstellen Sie eine Bereitstellung. Durch das Erstellen einer Bereitstellung für das Gerät werden die Module auf dem Gerät gestartet, einschließlich des IoT Edge-Hubmoduls.

Wenn Sie ein neues IoT Edge Gerät erstellen, wird es im Azure-Portal mit dem Statuscode 417 -- The device's deployment configuration is not set angezeigt. Dieser Status ist normal und bedeutet, dass das Gerät bereit ist, eine Modulbereitstellung zu empfangen.

Deinstallieren von IoT Edge für Linux unter Windows

Wenn Sie die Installation von Azure IoT Edge für Linux unter Windows von Ihrem Gerät entfernen möchten, verwenden Sie die folgenden Befehle:

  1. Öffnen Sie die Einstellungen unter Windows.
  2. Wählen Sie „Programme hinzufügen oder entfernen“ aus.
  3. Azure IoT Edge LTS-App auswählen
  4. Wählen Sie „Deinstallieren“ aus.

Nächste Schritte

Der Registrierungsprozess des Device Provisioning Service ermöglicht es Ihnen, beim Bereitstellen des neuen Geräts gleichzeitig die Geräte-ID und die Gerätezwillingstags festzulegen. Sie können diese Werte verwenden, um einzelne Geräte oder Gruppen von Geräten über die automatische Geräteverwaltung als Ziel festzulegen. Erfahren Sie, wie Sie IoT Edge-Module über das Azure-Portal oder mithilfe der Azure CLI bereitstellen und überwachen.

Sie können außerdem: