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

Wichtig

IoT Edge 1.1: Datum für das Supportende war der 13. Dezember 2022. Informationen zur Unterstützung für dieses Produkt, diesen Dienst, diese Technologie oder diese API finden Sie in der Microsoft Lifecycle-Richtlinie. Weitere Informationen zum Aktualisieren auf die neueste Version von IoT Edge finden Sie unter Update IoT Edge.

Dieser Artikel enthält vollständige Anleitungen für die automatische Bereitstellung von mindestens einem IoT Edge für Linux unter Windows-Gerät mithilfe von symmetrischen Schlüsseln. Sie können Azure loT Edge-Geräte mit dem Azure loT Hub-Device Provisioning Service (DPS) automatisch bereitstellen. Wenn Sie mit dem Prozess der automatischen Bereitstellung nicht vertraut sind, lesen Sie die Übersicht zur Bereitstellung, bevor Sie den Vorgang fortsetzen.

Aufgaben:

  1. Erstellen Sie entweder eine individuelle 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. Die Gerätebestätigung bzw. der Nachweis mithilfe eines TPM (Trusted Platform Module) oder von X.509-Zertifikaten ist sicherer und sollte verwendet werden, wenn striktere Sicherheitsanforderungen gelten.

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 ab Build 17763 mit Installation aller aktuellen kumulativen Updates.
  • 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.
    • 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 Ihrer Azure IoT Edge für Linux unter Windows-Bereitstellung verwenden möchten, gibt es mehrere Konfigurationsoptionen zu berücksichtigen.

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. Informationen zum Ermitteln Ihrer Konfigurationsanforderungen und zum Erfüllen dieser Voraussetzungen finden Sie unter 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 Ihre IoT Edge-Geräte mit PowerShell oder dem Windows Admin Center verwalten. Bei jedem Hilfsprogramm gibt es 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 PowerShell-Modul „Azure IoT Edge für Linux unter Windows“ finden Sie in der PowerShell-Funktionsreferenz.

Erstellen einer DPS-Registrierung

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 individuelle Registrierung. Wenn Sie mehrere Geräte bereitstellen müssen, führen Sie die Schritte zum Erstellen einer DPS-Gruppenregistrierung aus.

Wenn Sie eine Registrierung im DPS erstellen, haben Sie die Möglichkeit, einen Anfangszustand des Gerätezwillings zu deklarieren. Im Gerätezwilling können Sie Tags zum Gruppieren von Geräten nach jeder beliebigen Metrik, z.B. Region, Umgebung, Speicherort oder Geräte, festlegen, die Sie in Ihrer Projektmappe benötigen. Diese Tags werden zum Erstellen von automatischen Bereitstellungen verwendet.

Weitere Informationen zu Registrierungen im Device Provisioning Service finden Sie unter Verwalten von Geräteregistrierungen.

Erstellen einer individuellen DPS-Registrierung

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-Registrierung. Verwenden Sie als Teil des CLI-Befehls das Flag edge-enabled (Edge-fähig), um anzugeben, dass die Registrierung für ein IoT Edge-Gerät gilt.

  1. Navigieren Sie im Azure-Portal zu Ihrer Instanz des IoT Hub Device Provisioning Service.

  2. Klicken Sie in Einstellungen auf Registrierungen verwalten.

  3. Klicken Sie auf Individuelle Registrierung hinzufügen, und führen Sie dann die folgenden Schritte aus, um die Registrierung zu konfigurieren:

    1. Wählen Sie unter Mechanismus die Option Symmetrischer Schlüssel aus.

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

    3. Optional können Sie eine IoT Hub-Geräte-ID für Ihr Gerät angeben. 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 anzugeben, dass die Registrierung für ein IoT Edge-Gerät erfolgt.

    5. Fügen Sie optional einen Tagwert zu Anfänglicher Status von Gerätezwilling hinzu. 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 Wert Primärschlüssel der individuellen Registrierung, der beim Installieren der IoT Edge-Runtime 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. Für die Bereitstellung auf einem Remotezielgerät mithilfe von PowerShell können Sie über Remote PowerShell eine Verbindung mit einem Remotegerät herstellen und diese Befehle remote auf dem Gerät ausfü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 Installations- und VHDX-Verzeichnisse für IoT Edge für Linux unter Windows angeben, indem Sie dem Installationsbefehl die Parameter INSTALLDIR="<FULLY_QUALIFIED_PATH>" und VHDXDIR="<FULLY_QUALIFIED_PATH>" hinzufügen. Wenn Sie beispielsweise den Ordner D:\EFLOW für die Installation und D:\EFLOW-VHDX für das VHDX-Verzeichnis verwenden möchten, können Sie dazu 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 Bereitstellung von IoT Edge für Linux unter 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.

    Mit dem folgenden Befehl wird beispielsweise ein VM mit 4 vCPU-Kernen, 4 GB RAM (angegeben in MB) und 20 GB Speicherplatz erstellt:

    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 unter GPU-Beschleunigung für Azure IoT Edge für Linux unter Windows aufgeführt werden.

    Wenn Sie GPU-Passthrough verwenden möchten, müssen Sie Ihrem Befehl Deploy-Eflow die Parameter gpuName, gpuPassthroughType und gpuCount hinzufügen. 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 zur Risikominderung die Installation eines Gerätetreibers, den Sie vom Anbieter Ihrer GPU erhalten. Weitere Informationen finden Sie unter Bereitstellen von Grafikgeräten mit Discrete Device Assignment.

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

  6. Durch die Eingabe von „O“ oder „R“ können Sie Optionale Diagnosedaten bei Bedarf ein- oder ausschalten.

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

    Bei einer erfolgreichen Bereitstellung wird am Ende der Meldungen „Bereitstellung erfolgreich“ angezeigt (PNG).

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

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:

  • Den Wert für den DPS-ID-Bereich
  • Die von Ihnen erstellte Registrierungs-ID für das Gerät
  • Entweder der Primärschlüssel aus einer individuellen Registrierung oder ein abgeleiteter Schlüssel für Geräte, die eine Gruppenregistrierung verwenden.

Sie können Ihr IoT Edge-Gerät mithilfe von PowerShell oder Windows Admin Center bereitstellen.

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 lautet und die Geräte-ID aufgeführt ist.

  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 zum Herstellen eines SSH mit dem virtuellen Computer zulässig ist, ist der Benutzer, der es erstellt.

  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 Zustand 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. Wählen Sie die App Azure IoT Edge LTS aus.
  4. Wählen Sie „Deinstallieren“ aus.

Nächste Schritte

Der Registrierungsprozess des Device Provisioning Service ermöglicht es Ihnen, die Geräte-ID und die Tags von Gerätezwillingen beim Bereitstellen des neuen Geräts festzulegen. Sie können diese Werte verwenden, um einzelne Geräte oder Gruppen von Geräten über die automatische Geräteverwaltung als Ziel festzulegen. Weitere Informationen finden Sie unter Bedarfsgerechtes Bereitstellen und Überwachen von IoT Edge-Modulen mithilfe des Azure-Portals oder Verwenden der Azure CLI.

Sie können außerdem: