Tutorial: Device Update for IoT Hub mit Simulator Reference Agent (Ubuntu 18.04 x64)

Dieses Tutorial zeigt, wie Sie ein imagebasiertes End-to-End-Update mithilfe von Device Update for IoT Hub ausführen. Device Update for IoT Hub unterstützt image-, paket- und skriptbasierte Updates.

Imageupdates bieten ein höheres Maß an Vertrauen in den Endzustand des Geräts. Normalerweise ist es einfacher, die Ergebnisse eines Image-Updates zwischen einer Vorproduktions- und einer Produktionsumgebung zu replizieren, weil dies nicht die gleichen Herausforderungen wie das Verwalten von Paketen und ihren Abhängigkeiten darstellt. Aufgrund ihrer atomischen Natur können Sie auch problemlos ein A/B-Failovermodell übernehmen.

In diesem Tutorial lernen Sie Folgendes:

  • Weisen Sie ein IoT-Gerät mithilfe von Tags einer Device Update-Gruppe zu.
  • Herunterladen und Installieren eines Image
  • Importieren eines Updates
  • Bereitstellen eines Imageupdates
  • Überwachen der Updatebereitstellung

Voraussetzungen

  • Erstellen Sie ein Device Update-Konto und eine Device Update-Instanz, die mit einem IoT-Hub konfiguriert ist.

  • Verfügen Sie über ein Ubuntu 18.04-Gerät. Dabei kann es sich entweder um einen physischen oder einen virtuellen Computer handeln.

  • Laden Sie die ZIP-Datei Tutorial_Simulator.zip aus den Releaseressourcen in der neuesten Version herunter, und entzippen Sie sie.

    Wenn sich Ihr Testgerät von Ihrem Entwicklungscomputer unterscheidet, laden Sie die ZIP-Datei auf beide herunter.

    Sie können wget verwenden, um die ZIP-Datei herunterzuladen. Ersetzen Sie <release_version> durch die neueste Version, z. B 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Registrieren eines Geräts und Konfigurieren einer Modulkennung

Fügen Sie der Geräteregistrierung in Ihrem IoT-Hub ein Gerät hinzu. Jedes Gerät, das eine Verbindung mit dem IoT-Hub herstellt, muss registriert werden.

In diesem Abschnitt werden wir auch eine Modulkennung erstellen. Module sind unabhängige Identitäten für Komponenten, die auf einem IoT-Gerät vorhanden sind, was eine feinere Granularität ermöglicht, wenn Sie über ein IoT-Gerät verfügen, das mehrere Prozesse ausführt. In diesem Tutorial verwenden Sie diese Modulkennung für den Device Update-Agent, der auf dem IoT-Gerät ausgeführt wird. Weitere Informationen finden Sie unter Verstehen und Verwenden von Modulzwillingen in IoT Hub.

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT-Hub.
  2. Klicken Sie im linken Bereich auf Geräte. Wählen Sie dann Gerät hinzufügen aus.
  3. Geben Sie unter Geräte-ID einen Namen für das Gerät ein. Stellen Sie sicher, dass das Kontrollkästchen Schlüssel automatisch generieren aktiviert ist.
  4. Wählen Sie Speichern aus.
  5. Nun wird die Seite Geräte erneut angezeigt, und das von Ihnen erstellte Gerät sollte in der Liste enthalten sein. Wählen Sie dieses Gerät aus.
  6. Wählen Sie Modulidentität hinzufügen aus.
  7. Geben Sie unter Name der Modulidentität einen Namen für das Modul ein, z. B. DUAgent.
  8. Wählen Sie Speichern aus.

Kopieren Sie die Modulverbindungszeichenfolge.

  1. In der Geräteansicht sollte Ihr neues Modul unter der Überschrift Modulidentitäten aufgeführt werden. Wählen Sie den Modulnamen aus, um die Details zu öffnen.
  2. Wählen Sie das Symbol Kopieren neben Verbindungszeichenfolge (Primärschlüssel) aus. Speichern Sie diese Verbindungszeichenfolge, um sie beim Konfigurieren des Device Update-Agents zu verwenden. Diese Zeichenfolge ist Ihre Modulverbindungszeichenfolge.

Hinzufügen eines Tags zu Ihrem Modulzwillig

  1. Wählen Sie noch auf der Seite mit den Details zur Modulkennung Zwilling der Modulidentität aus.

  2. Fügen Sie wie gezeigt einen neuen Device Update-Tagwert auf derselben Ebene wie modelId und version in der Zwillingsdatei hinzu:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Screenshot des ADUGroup-Tags im Modulzwilling.

    Jedes von Device Update verwaltete Gerät benötigt dieses reservierte Tag, das das Gerät einer Device Update-Gruppe zuweist. Dies kann sich im Gerätezwilling oder in einem Modulzwilling befinden, wie hier gezeigt. Jedes Gerät kann nur einer Device Update-Gruppe zugewiesen werden.

  3. Wählen Sie Speichern aus. Das Portal formatiert den Modulzwilling neu, um das Tag in die JSON-Struktur zu integrieren.

Installieren und Konfigurieren des Device Update-Agents

Der Device Update-Agent wird auf jedem von Device Update verwalteten Gerät ausgeführt. In diesem Tutorial konfigurieren wir ihn so, dass er als Simulator ausgeführt wird, damit wir sehen können, wie ein Update auf ein Gerät angewendet werden kann, ohne die Konfiguration des Geräts tatsächlich zu ändern.

  1. Fügen Sie auf Ihrem IoT-Gerät das Paketrepository von Microsoft hinzu und dann den Paketsignaturschlüssel von Microsoft Ihrer Liste vertrauenswürdiger Schlüssel hinzu.

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb   
    
  2. Installieren Sie die DEB-Pakete des Device Update-Agents.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Öffnen Sie die Konfigurationsdatei des Agents.

    sudo nano /etc/adu/du-config.json
    
  4. Aktualisieren Sie in der Konfigurationsdatei folgende Werte:

    • manufacturer: "Contoso" Dieser Wert wird verwendet, um das IoT-Gerät für Updates zu klassifizieren.
    • model: "Video" Dieser Wert wird verwendet, um das IoT-Gerät für Updates zu klassifizieren.
    • name: "aduagent"
    • agents.connectionData: Geben Sie die Verbindungszeichenfolge an, die Sie aus der Modulkennung kopiert haben.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Weitere Informationen zu den Parametern in diesem Schritt finden Sie unter Konfigurationsdatei von Device Update for IoT Hub.

    Hinweis

    Sie können auch den IoT-Identitätsdienst verwenden, um das Gerät bereitzustellen. Hierzu installieren Sie den IoT-Identitätsdienst, bevor Sie den Device Update-Agent installieren. Konfigurieren Sie den Device Update-Agent dann mit "connectionType": "AIS" und connectionData als leere Zeichenfolge in die Konfigurationsdatei.

  5. Speichern und schließen Sie die Datei. CTRL+X, Y und Enter.

  6. Richten Sie den Agent so ein, dass er als Simulator ausgeführt wird. Führen Sie den folgenden Befehl auf dem IoT-Gerät aus, damit der Device Update-Agent den Simulatorhandler aufruft, um ein Paketupdate mit SWUpdate (microsoft/swupdate:1) zu verarbeiten.

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Entzippen Sie die Datei Tutorial_Simulator.zip, die Sie unter den Voraussetzungen heruntergeladen haben, und kopieren Sie die Datei sample-du-simulator-data.json in den Ordner tmp.

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Wenn „/tmp“ nicht vorhanden ist, führen Sie Folgendes aus:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Ändern Sie die Berechtigungen für die neue Datei.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Starten Sie den Device Update-Agent neu, um Ihre Änderungen anzuwenden.

     sudo systemctl restart deviceupdate-agent
    

Importieren eines Updates

In diesem Abschnitt verwenden Sie die Dateien TutorialImportManifest_Sim.importmanifest.json und adu-update-image-raspberrypi3.swu aus dem in den Voraussetzungen heruntergeladenen Paket Tutorial_Simulator.zip. Die Updatedatei wird im Raspberry Pi-Tutorial wiederverwendet. Da das Update in diesem Tutorial simuliert wird, spielt der spezifische Dateiinhalt keine Rolle.

  1. Melden Sie sich auf Ihrem Entwicklungscomputer beim Azure-Portal an, und wechseln Sie zu Ihrem mit Device Update konfigurierten IoT-Hub.

  2. Wählen Sie im Navigationsbereich unter Geräteverwaltung die Option Updates aus.

  3. Wählen Sie Neues Update importieren aus.

  4. Wählen Sie Aus Speichercontainer auswählen aus.

  5. Wählen Sie ein vorhandenes Speicherkonto aus, oder erstellen Sie ein neues Speicherkonto durch Auswahl von + Speicherkonto. Wählen Sie dann einen vorhandenen Container aus, oder erstellen Sie durch Auswahl von + Container einen neuen. Dieser Container wird für das Stagen Ihrer Updatedateien für den Import verwendet.

    Hinweis

    Es wird empfohlen, bei jedem Import eines Updates einen neuen Container zu verwenden, um zu vermeiden, dass versehentlich Dateien aus früheren Updates importiert werden. Wenn Sie keinen neuen Container verwenden, müssen Sie vor diesem Schritt alle Dateien aus dem vorhandenen Container löschen.

    Screenshot: Speicherkonten und Container.

  6. Wählen Sie in Ihrem Container Hochladen aus, und wechseln Sie zu den in den Voraussetzungen heruntergeladenen Dateien. Wählen Sie die Dateien TutorialImportManifest_Sim.importmanifest.json und adu-update-image-raspberrypi3.swu und dann Hochladen aus.

  7. Aktivieren Sie das Kontrollkästchen für jede Datei, und klicken Sie dann auf die Schaltfläche Auswählen, um zur Seite Update importieren zurückzukehren.

    Screenshot: Auswählen hochgeladener Dateien im Container.

  8. Überprüfen Sie auf der Seite Update importieren die zu importierenden Dateien. Klicken Sie dann auf Update importieren, um den Importvorgang zu starten.

    Screenshot: Hochgeladene Dateien, die als Update importiert werden.

  9. Der Importvorgang beginnt, und auf dem Bildschirm wird der Abschnitt Importverlauf angezeigt. In der Spalte Status wird für den Import Wird ausgeführt angezeigt, während der Import ausgeführt wird, und Erfolgreich, wenn der Import abgeschlossen ist. Aktualisieren Sie den Status mittels der Schaltfläche Aktualisieren.

  10. Wenn in der Spalte Status angezeigt wird, dass der Import erfolgreich war, klicken Sie auf den Header Verfügbare Updates. Ihr importiertes Update sollte nun in der Liste angezeigt werden.

    Screenshot: Das neue Update wird als verfügbares Update aufgelistet.

Weitere Informationen zum Importvorgang finden Sie unter Importieren eines Updates für Device Update for IoT Hub.

Anzeigen von Gerätegruppen

Device Update verwendet Gruppen, um Geräte zu organisieren. Device Update ordnet Geräte basierend auf den zugewiesenen Tags und Kompatibilitätseigenschaften automatisch in Gruppen ein. Jedes Gerät gehört nur zu einer Gruppe, aber Gruppen können mehrere Untergruppen haben, um unterschiedliche Geräteklassen zu sortieren.

  1. Wechseln Sie oben auf der Seite Updates zur Registerkarte Gruppen und Bereitstellungen.

  2. Zeigen Sie die Liste der Gruppen und das Updatekonformitätsdiagramm an. Das Updatekonformitätsdiagramm zeigt die Anzahl von Geräten in verschiedenen Konformitätszuständen: Mit neuestem Update, Neue Updates verfügbar und Updates werden ausgeführt. Informieren Sie sich weiter über die Updatekonformität.

    Screenshot: Updatekonformitätsansicht.

    Sie sollten eine Gerätegruppe sehen, die das simulierte Gerät, das Sie in diesem Tutorial eingerichtet haben, sowie alle verfügbaren Updates für die Geräte in der neuen Gruppe enthält. Wenn Geräte vorhanden sind, die die Geräteklassenanforderungen der Gruppe nicht erfüllen, werden sie in einer entsprechenden Gruppe ungültiger Geräte angezeigt.

Weitere Informationen zu Tags und Gruppen finden Sie unter Verwalten von Gerätegruppen.

Bereitstellen des Updates

  1. Auf der Registerkarte Gruppen und Bereitstellungen sollte ein neues Update für Ihre Gerätegruppe verfügbar sein. Ein Link zum Update sollte unter Status angezeigt werden. Möglicherweise müssen Sie die Seite aktualisieren.

  2. Wählen Sie den Gruppennamen aus, um dessen Details anzuzeigen.

  3. Auf der Seite mit den Gruppendetails sollten Sie sehen, dass ein neues Update verfügbar ist. Wählen Sie Bereitstellen aus, um die Bereitstellung zu starten.

    Screenshot: Starten einer Gruppenupdatebereitstellung.

  4. Das im vorherigen Abschnitt importierte Update wird als das beste verfügbare Update für diese Gruppe aufgelistet. Klicken Sie auf Bereitstellen.

  5. Planen Sie Ihre Bereitstellung, oder beginnen Sie sofort, und wählen Sie dann Erstellen aus.

  6. Navigieren Sie auf der Seite mit den Gruppendetails zur Registerkarte Aktuelle Updates. Unter Bereitstellungsdetails wird Status auf Aktiv gesetzt.

  7. Nachdem Ihr Gerät erfolgreich aktualisiert wurde, kehren Sie zur Seite Updates zurück. Sie sollten sehen, dass Ihr Konformitätsdiagramm und die Bereitstellungsdetails so aktualisiert sind, dass sie übereinstimmen.

Überwachen der Updatebereitstellung

  1. Kehren Sie zur Seite mit den Gruppendetails zurück, und wählen Sie die Registerkarte Bereitstellungsverlauf aus.

  2. Wählen Sie neben der von Ihnen erstellten Bereitstellung Bereitstellungsdetails anzeigen aus.

    Screenshot: Bereitstellungsdetails.

  3. Klicken Sie auf Aktualisieren, um die neuesten Statusdetails anzuzeigen.

Sie haben jetzt mithilfe von Device Update for IoT Hub ein erfolgreiches, vollständiges Imageupdate durchgeführt, indem Sie Simulator Reference Agent (Ubuntu 18.04 x64) verwendet haben.

Bereinigen von Ressourcen

Wenn Sie mit dem nächsten Tutorial fortfahren möchten, behalten Sie Ihre Device Update- und IoT Hub-Ressourcen bei.

Wenn diese Ressourcen nicht mehr benötigt werden, können Sie sie im Azure-Portal löschen.

  1. Navigieren Sie im Azure-Portal zu Ihrer Ressourcengruppe.

  2. Wählen Sie aus, welche Ressourcen gelöscht werden sollen.

    • Wenn Sie alle Ressourcen in der Gruppe löschen möchten, wählen Sie Ressourcengruppe löschen aus.
    • Wenn Sie nur ausgewählte Ressourcen löschen möchten, wählen Sie mittels der Kontrollkästchen die Ressourcen und dann Löschen aus.

Nächste Schritte

In diesem Tutorial haben Sie gelernt, ein Imageupdate zu importieren und bereitzustellen. Als Nächstes erfahren Sie, wie Sie Gerätepakete aktualisieren.