Erstellen und Bereitstellen eines IoT Edge-Geräts unter Linux mithilfe von symmetrischen Schlüsseln

Gilt für:IoT Edge 1.4 checkmark IoT Edge 1.4

Wichtig

IoT Edge Version 1.4 wird unterstützt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

In diesem Artikel finden Sie umfassende Anweisungen zum Registrieren und Bereitstellen eines IoT Edge-Geräts unter Linux, darunter auch die Installation von IoT Edge.

Jedes Gerät, das eine Verbindung mit einem IoT-Hub herstellt, verfügt über eine Geräte-ID, die zum Nachverfolgen der Cloud-zu-Gerät- oder Gerät-zu-Cloud-Kommunikation verwendet wird. Sie konfigurieren ein Gerät mit seinen Verbindungsinformationen, die Folgendes umfassen:

  • Hostname des IoT-Hubs
  • Geräte-ID
  • Authentifizierungsdetails zum Herstellen einer Verbindung mit dem IoT Hub

Die Schritte in diesem Artikel führen Sie durch die sogenannte manuelle Bereitstellung, bei der Sie ein einzelnes Gerät mit dem entsprechenden IoT-Hub verbinden. Bei der manuellen Bereitstellung haben Sie zwei Optionen zum Authentifizieren von IoT Edge-Geräten:

  • Symmetrische Schlüssel: Wenn Sie in IoT Hub eine neue Geräteidentität erstellen, erstellt der Dienst zwei Schlüssel. Ein Schlüssel befindet sich auf dem Gerät, den es bei der Authentifizierung in IoT Hub vorzeigt.

    Diese Authentifizierungsmethode kann schneller eingerichtet werden, ist dafür aber weniger sicher.

  • selbstsignierte X.509: Sie erstellen zwei X.509-Identitätszertifikate und bewahren diese auf dem Gerät auf. Wenn Sie in IoT Hub eine neue Geräteidentität erstellen, geben Sie Fingerabdrücke aus beiden Zertifikaten an. Wenn sich das Gerät bei IoT Hub authentifiziert, übergibt es ein Zertifikat, und IoT Hub überprüft, ob das Zertifikat mit dem Fingerabdruck übereinstimmt.

    Diese Authentifizierungsmethode ist sicherer und wird für Produktionsszenarios empfohlen.

In diesem Artikel wird die Verwendung von symmetrischen Schlüsseln als Authentifizierungsmethode behandelt. Wenn Sie X.509-Zertifikate verwenden möchten, lesen Sie Erstellen und Bereitstellen eines IoT Edge-Geräts unter Linux mithilfe von X.509-Zertifikaten.

Hinweis

Wenn Sie viele Geräte einrichten müssen und sie nicht einzeln manuell bereitstellen möchten, informieren Sie sich in einem der folgenden Artikel, wie IoT Edge beim IoT Hub Device Provisioning Service (Gerätebereitstellungsdienst) funktioniert:

Voraussetzungen

Dieser Artikel zeigt Ihnen, wie Sie Ihr IoT Edge-Gerät registrieren und IoT Edge (auch IoT Edge Runtime genannt) auf Ihrem Gerät installieren. Vergewissern Sie sich, dass Sie das Gerätemanagement-Tool Ihrer Wahl, z. B. Azure CLI, und die Geräteanforderungen haben, bevor Sie Ihr Gerät registrieren und installieren.

Geräteverwaltungstools

Sie können die Schritte zum Registrieren Ihres Geräts über das Azure-Portal, mithilfe von Visual Studio Code oder über die Azure CLI ausführen. Jedes Dienstprogramm hat seine eigenen Voraussetzungen oder muss möglicherweise installiert werden:

Ein IoT-Hub in Ihrem Azure-Abonnement im Tarif „Free“ oder „Standard“.

Geräteanforderungen

Ein X64-, ARM32- oder ARM64-Linux-Gerät.

Microsoft veröffentlicht Installationspakete für viele verschiedene Betriebssysteme.

Neueste Informationen dazu, welche Betriebssysteme zurzeit für Produktionsszenarien unterstützt werden, finden Sie unter Von Azure IoT Edge unterstützte Systeme.

Visual Studio Code-Erweiterungen

Wenn Sie Visual Studio Code verwenden, gibt es hilfreiche Azure IoT-Erweiterungen, die Ihnen die Erstellung und Verwaltung von Geräten erleichtern.

Installieren Sie sowohl die Erweiterungen Azure IoT Edge als auch Azure IoT Hub:

Registrieren Ihres Geräts

Je nach Präferenz können Sie Ihr Gerät über das Azure-Portal, mithilfe von Visual Studio Code oder über die Azure CLI registrieren.

In Ihrem IoT-Hub im Azure-Portal werden IoT Edge-Geräte separat von IoT-Geräten erstellt und verwaltet, die nicht mit Edge verwendet werden können.

  1. Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem IoT Hub.

  2. Klicken Sie im linken Bereich auf Geräte, und klicken Sie dann auf Gerät hinzufügen.

  3. Geben Sie auf der Seite Gerät erstellen die folgenden Informationen ein:

    • Erstellen Sie eine beschreibende Geräte-ID, z. B. my-edge-device-1 (nur Kleinbuchstaben). Kopieren Sie die Geräte-ID, da Sie sie später verwenden werden.
    • Aktivieren Sie das Kontrollkästchen IoT Edge-Gerät.
    • Wählen Sie als Authentifizierungstyp Symmetrischer Schlüssel aus.
    • Verwenden Sie die Standardeinstellungen, um automatisch Authentifizierungsschlüssel zu generieren, die das neue Gerät mit Ihrem Hub verbinden.
  4. Wählen Sie Speichern.

Ihr neues Gerät sollte in Ihrem IoT-Hub aufgelistet sein.

Da Sie nun ein Gerät in IoT Hub registriert haben, können Sie im nächsten Schritt die Bereitstellungsinformationen abrufen, die für die Installation und Bereitstellung der IoT Edge-Runtime benötigt werden.

Anzeigen registrierter Geräte und Abrufen von Bereitstellungsinformationen

Für Geräte, die die Authentifizierung mit symmetrischen Schlüsseln verwenden, wird eine eigene Verbindungszeichenfolge benötigt, um die Installation und Bereitstellung der IoT Edge-Runtime abzuschließen. Die Verbindungszeichenfolge für Ihr IoT Edge-Gerät wird generiert, wenn Sie das Gerät erstellen. Bei Visual Studio Code und Azure CLI befindet sich die Verbindungszeichenfolge in der JSON-Ausgabe. Wenn Sie das Azure-Portal verwenden, um Ihr Gerät zu erstellen, können Sie die Verbindungszeichenfolge auf dem Gerät selbst finden. Wenn Sie Ihr Gerät in Ihrem IoT-Hub auswählen, wird es auf der Geräteseite als Primary connection string aufgeführt.

Die Edge-fähigen Geräte, die sich mit Ihrem IoT-Hub verbinden, werden auf der Seite Geräte Ihres IoT-Hubs aufgeführt. Wenn Sie mehrere Geräte haben, können Sie die Liste filtern, indem Sie den Typ IoT Edge-Geräte und dann Anwenden wählen.

Wenn Sie bereit für die Einrichtung Ihres Geräts sind, benötigen Sie die Verbindungszeichenfolge, die Ihr physisches Gerät mit seiner Identität in IoT Hub verknüpft. Sie können die Verbindungszeichenfolgen von Geräten, die sich mit symmetrischen Schlüsseln authentifizieren, im Portal kopieren. So finden Sie Ihre Verbindungszeichenfolge im Portal:

  1. Wählen Sie auf der Seite Geräte die IoT Edge-Geräte-ID aus der Liste aus.
  2. Kopieren Sie entweder den Wert der primären Verbindungszeichenfolge oder der sekundären Verbindungszeichenfolge. Beide Schlüssel funktionieren.

Installieren von IoT Edge

In diesem Abschnitt bereiten Sie Ihren virtuellen Linux Computer oder Ihr physisches Gerät für loT Edge vor. Anschließend installieren Sie IoT Edge.

Führen Sie die folgenden Befehle aus, um das Paketrepository hinzuzufügen, und fügen Sie dann Ihrer Liste von vertrauenswürdigen Schlüsseln den Microsoft-Paketsignaturschlüssel hinzu.

Wichtig

Am 30. Juni 2022 wurde Raspberry Pi OS Stretch aus der Betriebssystem-Supportliste der Stufe 1 zurückgezogen. Wenn Sie potenzielle Sicherheitsrisiken vermeiden möchten, aktualisieren Sie Ihr Hostbetriebssystem auf Bullseye.

Die Installation kann mit einigen wenigen Befehlen erledigt werden. Öffnen Sie ein Terminal, und führen Sie die folgenden Befehle aus:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Weitere Informationen zu den Betriebssystemversionen finden Sie unter Unterstützte Plattformen für Azure IoT Edge.

Hinweis

Für Azure IoT Edge-Softwarepakete gelten die in jedem Paket (im Verzeichnis usr/share/doc/{package-name} oder LICENSE) enthaltenen Lizenzbedingungen. Lesen Sie die Lizenzbedingungen, bevor Sie ein Paket verwenden. Durch Ihre Installation und Verwendung eines Pakets erklären Sie Ihre Zustimmung zu diesen Bedingungen. Wenn Sie den Lizenzbedingungen nicht zustimmen, verwenden Sie das Paket nicht.

Installieren einer Containerengine

Azure IoT Edge basiert auf einer OCI-kompatiblen Containerruntime. Für Produktionsszenarien empfehlen wir die Verwendung der Moby-Engine. Die Moby-Engine ist die einzige Container-Engine, die offiziell von IoT Edge unterstützt wird. Docker CE/EE-Containerimages sind mit der Moby-Runtime kompatibel.

Installieren Sie die Moby-Engine.

sudo apt-get update; \
  sudo apt-get install moby-engine

Standardmäßig legt die Containerengine keine Grenzwerte für die Größe des Containerprotokolls fest. Im Laufe der Zeit kann dies dazu führen, dass das Gerät mit Protokollen überfüllt wird und auf dem Datenträger nicht genügend Speicherplatz zur Verfügung steht. Sie können Ihr Protokoll jedoch so konfigurieren, dass es lokal angezeigt wird, allerdings ist dies optional. Weitere Informationen zur Protokollierungskonfiguration finden Sie in der Prüfliste zur Produktionsbereitstellung.

Die folgenden Schritte zeigen Ihnen, wie Sie Ihren Container so konfigurieren, dass der Protokollierungstreiber local als Protokollierungsmechanismus verwendet wird.

  1. Erstellen oder Bearbeiten der Konfigurationsdatei des vorhandenen Docker-Daemons

    sudo nano /etc/docker/daemon.json
    
  2. Legen Sie den Standardprotokollierungstreiber auf den Protokollierungstreiber local fest, wie im folgenden Beispiel gezeigt.

       {
          "log-driver": "local"
       }
    
  3. Starten Sie die Container-Engine neu, damit die Änderungen wirksam werden.

    sudo systemctl restart docker
    

Installieren der IoT Edge-Runtime

Der IoT Edge-Dienst stellt Sicherheitsstandards auf dem IoT Edge-Gerät bereit und sorgt für deren Einhaltung. Der Dienst wird bei jedem Start gestartet und führt durch Starten der restlichen IoT Edge-Runtime einen Bootstrap für das Gerät aus.

Hinweis

Ab Version 1.2 übernimmt der IoT-Identitätsdienst die Identitätsbereitstellung und -verwaltung für IoT Edge und für andere Gerätekomponenten, die mit IoT Hub kommunizieren müssen.

Die Schritte in diesem Abschnitt stellen den typischen Prozess zur Installation der neuesten IoT Edge-Version auf einem Gerät mit Internetverbindung dar. Wenn Sie eine bestimmte Version, z. B eine Vorabversion, installieren oder eine Offlineinstallation durchführen müssen, führen Sie die Schritte unter Offlineinstallation oder Installation einer bestimmten Version weiter unten in diesem Artikel aus.

Tipp

Wenn Sie bereits ein IoT Edge-Gerät haben, auf dem eine ältere Version ausgeführt wird, und ein Upgrade auf die neueste Version durchführen möchten, führen Sie die Schritte unter Aktualisieren des IoT Edge-Sicherheitsdaemons und der Runtime aus. Neuere Versionen unterscheiden sich ausreichend von früheren IoT Edge-Versionen, sodass bestimmte Schritte für das Upgrade erforderlich sind.

Installieren Sie die neueste Version von IoT Edge und das IoT-Identitätsdienstpaket (falls Sie nicht bereits auf dem neuesten Stand sind):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Das optionale Paket defender-iot-micro-agent-edge enthält den Microsoft Defender for IoT-Sicherheitsmikroagenten, der an den Endpunkten Einblicke in das Sicherheitsmanagement, Sicherheitslücken, die Erkennung von Bedrohungen, das Flottenmanagement und vieles mehr bietet, damit Sie Ihre IoT Edge-Geräte schützen können. Es wird empfohlen, den Micro-Agent zusammen mit dem Edge-Agent zu installieren, um die Sicherheitsüberwachung und -härtung Ihrer Edgegeräte zu ermöglichen. Weitere Informationen zu Microsoft Defender für Cloud finden Sie unter Was ist Microsoft Defender für IoT für Geräteentwickler?.

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

Nachdem die Container-Engine und die IoT Edge-Laufzeitumgebung auf Ihrem Gerät installiert sind, können Sie das Gerät mit seiner Cloudidentität und den Authentifizierungsinformationen einrichten.

Mithilfe des folgenden Befehls können Sie Ihr IoT Edge-Gerät mit der Authentifizierung über symmetrische Schlüssel konfigurieren:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

Dieser iotedge config mp-Befehl erstellt eine Konfigurationsdatei auf dem Gerät und trägt Ihre Verbindungszeichenfolge in die Konfigurationsdatei ein.

  1. Übernehmen Sie die Konfigurationsänderungen.

    sudo iotedge config apply
    
  2. Um die Konfigurationsdatei anzusehen, können Sie sie öffnen:

    sudo nano /etc/aziot/config.toml
    

Bereitstellen von Modulen

Um Ihre IoT Edge-Module bereitzustellen, gehen Sie im Azure-Portal zu Ihrem IoT-Hub und führen Sie dann Folgendes aus:

  1. Wählen Sie im IoT Hub-Menü Geräte aus.

  2. Wählen Sie Ihr Gerät aus, um seine Seite zu öffnen.

  3. Wählen Sie die Schaltfläche Module festlegen aus.

  4. Da wir die IoT Edge-Standardmodule (edgeAgent und edgeHub) bereitstellen möchten, brauchen wir diesem Bereich keine Module hinzuzufügen, wählen Sie also unten Überprüfen und Erstellen aus.

  5. Die JSON-Bestätigung Ihrer Module wird angezeigt. Wählen Sie Erstellen aus, um die Module bereitzustellen.

Weitere Informationen finden Sie unter Bereitstellen eines Moduls.

Überprüfen der erfolgreichen Konfiguration

Vergewissern Sie sich, dass die Runtime erfolgreich auf Ihrem IoT Edge-Gerät installiert und konfiguriert wurde.

Tipp

Sie benötigen erhöhte Rechte zum Ausführen von iotedge-Befehlen. Nachdem Sie sich bei Ihrem Computer abgemeldet und sich nach der Installation der IoT Edge-Runtime zum ersten Mal erneut angemeldet haben, werden Ihre Berechtigungen automatisch aktualisiert. Verwenden Sie bis dahin sudo vor den Befehlen.

  1. Überprüfen Sie, ob der IoT Edge-Systemdienst ausgeführt wird.

    sudo iotedge system status
    

    Eine erfolgreiche Statusmeldung zeigt an, dass die aziot-Dienste ausgeführt werden oder bereit sind.

  2. Sollte eine Problembehandlung für den Dienst erforderlich sein, rufen Sie die Dienstprotokolle ab.

    sudo iotedge system logs
    
  3. Verwenden Sie das Tool check, um die Konfiguration und den Verbindungsstatus des Geräts zu überprüfen.

    sudo iotedge check
    

    Sie können eine Reihe von Antworten erwarten, die OK (grün), Warnung (gelb) oder Fehler (rot) umfassen können. Informationen zur Problembehandlung häufig auftretender Fehler finden Sie unter Lösungen für häufige Probleme für Azure IoT Edge.

    Screenshot of sample responses from the check command.

    Tipp

    Verwenden Sie zur Ausführung des Tools „check“ immer sudo, auch nachdem Ihre Berechtigungen aktualisiert wurden. Das Tool benötigt erhöhte Rechte für den Zugriff auf die Konfigurationsdatei, um den Konfigurationsstatus überprüfen zu können.

    Hinweis

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

    × Produktionsbereitschaft: Das Speicherverzeichnis von Edge Hub wird auf dem Host-Dateisystem beibehalten – Fehler Der aktuelle Status des edgeHub-Containers konnte nicht überprüft werden

    Dieser Fehler wird bei einem neu bereitgestellten Gerät erwartet, da das IoT Edge Hub-Modul noch nicht ausgeführt wird. Vergewissern Sie sich, dass Ihre IoT Edge-Module in den vorherigen Schritten bereitgestellt wurden. Durch die Bereitstellung wird dieser Fehler behoben.

    Alternativ können Sie auch einen Statuscode wie 417 -- The device's deployment configuration is not set sehen. Sobald Ihre Module bereitgestellt sind, ändert sich dieser Status.

  4. Wenn der Dienst zum ersten Mal gestartet wird, sollte nur das Modul edgeAgent ausgeführt werden. Das Modul edgeAgent wird standardmäßig ausgeführt und unterstützt Sie beim Installieren und Starten von zusätzlichen Modulen, die Sie auf Ihrem Gerät bereitstellen.

    Überprüfen Sie, ob Ihr Gerät und Ihre Module bereitgestellt sind und laufen, indem Sie Ihre Geräteseite im Azure-Portal aufrufen.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

    Sobald Ihre Module bereitgestellt und ausgeführt werden, können Sie sie mit dem folgenden Befehl in Ihrem Gerät oder Ihrer virtuellen Maschine auflisten:

    sudo iotedge list
    

Offlineinstallation oder Installation einer bestimmten Version (optional)

Die in diesem Abschnitt aufgeführten Schritte sind für Szenarien vorgesehen, die von den Schritten der Standardinstallation nicht abgedeckt werden. Dies kann enthalten:

  • Installation von IoT Edge im Offline-Modus
  • Installieren einer Release Candidate-Version

Verwenden Sie die Schritte in diesem Abschnitt, wenn Sie eine bestimmte Version der Azure IoT Edge-Runtime installieren möchten, die nicht über Ihren Paketmanager verfügbar ist. Die Microsoft-Paketliste enthält nur eine begrenzte Reihe aktueller Versionen und deren Unterversionen. Diese Schritte sind also für diejenigen gedacht, die eine ältere Version oder eine Release Candidate-Version installieren möchten.

Wenn Sie Ubuntu Snaps verwenden, können Sie ein Snap herunterladen und offline installieren. Weitere Informationen finden Sie unter Snaps herunterladen und offline installieren.

Mithilfe von curl-Befehlen können Sie die Komponentendateien direkt aus dem IoT Edge-GitHub-Repository als Ziel verwenden.

Hinweis

Wenn auf Ihrem Gerät zurzeit IoT Edge, Version 1.1 oder älter, ausgeführt wird, deinstallieren Sie die Pakete iotedge und libiothsm-std, bevor Sie die Schritte in diesem Abschnitt ausführen. Weitere Informationen finden Sie unter Update von 1.0 oder 1.1 auf die neueste Version.

  1. Navigieren Sie zu den Veröffentlichungen von Azure IoT Edge, und suchen Sie die Version, die Sie verwenden möchten.

  2. Erweitern Sie den Abschnitt Assets für diese Version.

  3. Jedes Release sollte neue Dateien für IoT Edge und den Identitätsdienst enthalten. Wenn Sie IoT Edge auf einem Offlinegerät installieren möchten, laden Sie diese Dateien im Voraus herunter. Alternativ können Sie diese Komponenten mit den folgenden Befehlen aktualisieren.

    1. Suchen Sie die Datei aziot-identity-service, die der Architektur Ihres IoT Edge-Geräts entspricht. Klicken Sie mit der rechten Maustaste auf den Dateilink, und kopieren Sie die Linkadresse.

    2. Verwenden Sie den kopierten Link im folgenden Befehl, um diese Version des Identitätsdiensts zu installieren:

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. Suchen Sie die Datei aziot-edge, die der Architektur Ihres IoT Edge-Geräts entspricht. Klicken Sie mit der rechten Maustaste auf den Dateilink, und kopieren Sie die Linkadresse.

    2. Verwenden Sie den kopierten Link im folgenden Befehl, um diese Version von IoT Edge zu installieren.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

Deinstallieren von IoT Edge

Verwenden Sie die folgenden Befehle, wenn Sie die IoT Edge-Installationen von Ihrem Gerät entfernen möchten.

Entfernen Sie die IoT Edge-Runtime.

sudo apt-get autoremove --purge aziot-edge

Lassen Sie das Flag --purge weg, wenn Sie IoT Edge erneut installieren und künftig dieselben Konfigurationsinformationen verwenden möchten. Das Flag --purge löscht alle mit IoT Edge verbundenen Dateien, einschließlich Ihrer Konfigurationsdateien.

Wenn die IoT Edge-Runtime entfernt wird, werden alle von ihr erstellten Container angehalten. Auf Ihrem Gerät sind sie jedoch weiterhin vorhanden. Zeigen Sie alle Container an, um die verbliebenen zu sehen.

sudo docker ps -a

Löschen Sie die Container von Ihrem Gerät, einschließlich der zwei Laufzeitcontainer.

sudo docker rm -f <container ID>

Entfernen Sie schließlich die Containerruntime von Ihrem Gerät.

sudo apt-get autoremove --purge moby-engine

Nächste Schritte

Sie können nun mit dem Artikel zum Bereitstellen von IoT Edge-Modulen fortfahren, um zu erfahren, wie Sie Module auf Ihrem Gerät bereitstellen.