Tutorial: Device Update for IoT Hub mit Simulator Reference Agent (Ubuntu 18.04 x64)
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. Es ist in der Regel einfacher, die Ergebnisse eines Imageupdates zwischen einer Vorproduktions- und einer Produktionsumgebung zu replizieren, da dies nicht die gleichen Herausforderungen wie bei Paketen und deren Abhängigkeiten mit sich bringt. Aufgrund ihrer atomischen Natur können Sie auch problemlos ein A/B-Failovermodell übernehmen.
In diesem Tutorial werden die Schritte erläutert, mit denen Sie ein vollständiges, imagebasiertes Update mit Device Update for IoT Hub durchführen.
In diesem Tutorial lernen Sie Folgendes:
- Herunterladen und Installieren eines Image
- Hinzufügen eines Tags zu Ihrem IoT-Gerät
- Importieren eines Updates
- Gerätegruppe erstellen.
- Bereitstellen eines Imageupdates
- Überwachen der Updatebereitstellung
Voraussetzungen
Erstellen Sie ein Konto und eine Instanz für Device Update, und konfigurieren Sie einen IoT-Hub, falls Sie diese Schritte noch nicht ausgeführt haben.
Laden Sie die ZIP-Datei Tutorial_Simulator.zip
aus den Releaseressourcen in der neuesten Version herunter, und entzippen Sie sie.
Hinzufügen eines Geräts zu Azure IoT Hub
Nachdem der Device Update-Agent auf einem IoT-Gerät ausgeführt wurde, müssen Sie das Gerät IoT Hub hinzufügen. In IoT Hub wird eine Verbindungszeichenfolge für ein bestimmtes Gerät generiert.
Starten Sie Device Update for IoT Hub im Azure-Portal.
Erstellen Sie ein neues Gerät.
Wechseln Sie im linken Bereich zu Geräte. Wählen Sie dann Neu aus.
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.
Wählen Sie Speichern aus.
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.
Klicken Sie in der Ansicht „Gerät“ auf das Symbol Kopieren neben Primäre Verbindungszeichenfolge.
Fügen Sie die kopierten Zeichen irgendwo zur späteren Verwendung in den folgenden Schritten ein:
Diese kopierte Zeichenfolge ist Ihre Geräteverbindungszeichenfolge.
Installieren des Device Update-Agents zum Testen als Simulator
Befolgen Sie die Anweisungen unter Erstellen und Bereitstellen eines IoT Edge-Geräts unter Linux mithilfe von symmetrischen Schlüsseln.
Hinweis
Der Geräteupdate-Agent ist nicht von IoT Edge abhängig. Er greift jedoch auf den Daemon für den IoT-Identitätsdienst zu, der mit IoT Edge (Version 1.2.0 und höher) installiert wird, um eine Identität abzurufen und eine Verbindung mit IoT Hub herzustellen.
Der Daemon für den IoT Identitätsdienst kann eigenständig auf Linux-basierten IoT-Geräten installiert werden. Dies wird in diesem Tutorial jedoch nicht erläutert. Die Reihenfolge der Installation ist wichtig. Der Device Update-Paket-Agent muss nach dem IoT-Identitätsdienst installiert werden. Andernfalls wird der Paket-Agent nicht als autorisierte Komponente registriert, um eine Verbindung mit IoT Hub herzustellen.
Installieren Sie dann die DEB-Pakete des Device Update-Agents.
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
Geben Sie die primäre Verbindungszeichenfolge des Moduls Ihres IoT-Geräts (oder Geräts, je nachdem, wie Sie das Gerät mit Device Update bereitgestellt haben) in die Konfigurationsdatei ein, indem Sie den folgenden Befehl ausführen:
sudo nano /etc/adu/du-config.json
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 APT („microsoft/apt:1“) zu verarbeiten:
sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so --update-type 'microsoft/apt:1'
Verwenden Sie zum Registrieren und Aufrufen des Simulatorhandlers das folgende Format, und füllen Sie die Platzhalter aus:
sudo /usr/bin/AducIotAgent --register--content-handler <full path to the handler file> --update-type <update type name>
Sie benötigen die Datei
sample-du-simulator-data.json
aus der heruntergeladenen DateiTutorial_Simulator.zip
in den Voraussetzungen.Öffnen Sie die Datei
sample-du-simulator-data.json
, und kopieren Sie deren Inhalt in die Zwischenablage:nano sample-du-simulator-data.json
Wählen Sie den Inhalt der Datei aus, und drücken Sie STRG+C. Drücken Sie STRG+X, um die Datei zu schließen und Änderungen nicht zu speichern.
Führen Sie den folgenden Befehl aus, um die
du-simulator-data.json
-Datei im Ordner „tmp“ zu erstellen und zu bearbeiten:sudo nano /tmp/du-simulator-data.json
Drücken Sie STRG+V, um den Inhalt in den Editor einzufügen. Drücken Sie STRG+X, um die Änderungen zu speichern, und dann J.
Ändern Sie die Berechtigungen:
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Wenn „/tmp“ nicht vorhanden ist, gehen Sie wie folgt vor:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Starten Sie den Device Update-Agent neu, indem Sie den folgenden Befehl ausführen:
sudo systemctl restart adu-agent
Die Software Device Update for Azure IoT Hub unterliegt den folgenden Lizenzbedingungen:
Lesen Sie vor Verwendung des Agents die Lizenzbedingungen. Durch die Installation und Verwendung erklären Sie Ihre Zustimmung zu diesen Bestimmungen. Wenn Sie den Lizenzbedingungen nicht zustimmen, verwenden Sie den Device Update for IoT Hub-Agent nicht.
Hinweis
Führen Sie nach dem Testen mit dem Simulator den folgenden Befehl aus, um den APT-Handler aufzurufen und Over-the-Air-Paketupdates bereitzustellen:
# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
Hinzufügen eines Tags zu Ihrem Gerät
Melden Sie sich beim Azure-Portal an, und navigieren Sie zum IoT-Hub.
Suchen Sie im linken Bereich unter Geräte nach Ihrem IoT-Gerät, und wechseln Sie zum Geräte- oder Modulzwilling.
Löschen Sie im Modulzwilling des Device Update-Agent-Moduls alle vorhandenen Device Update-Tagwerte, indem Sie diese auf NULL festlegen. Wenn Sie die Geräteidentität mit einem Device Update-Agent verwenden, nehmen Sie diese Änderungen im Gerätezwilling vor.
Fügen Sie wie im Folgenden gezeigt einen neuen Device Update-Tagwert hinzu:
"tags": { "ADUGroup": "<CustomTagValue>" }
Importieren des Updates
Sie benötigen die Dateien
TutorialImportManifest_Sim.importmanifest.json
undadu-update-image-raspberrypi3.swu
aus der heruntergeladenen DateiTutorial_Simulator.zip
in den Voraussetzungen. Die Updatedatei wird im Raspberry Pi-Tutorial wiederverwendet. Da das Update in diesem Tutorial simuliert wird, spielt der spezifische Dateiinhalt keine Rolle.Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem IoT-Hub mit Device Update. Wählen Sie im linken Bereich unter Automatische Geräteverwaltung die Option Updates aus.
Wählen Sie die Registerkarte Updates aus.
Wählen Sie + Neues Update importieren aus.
Klicken Sie auf + Aus Speichercontainer auswählen. Wählen Sie ein vorhandenes Konto aus, oder erstellen Sie über die Option + Speicherkonto ein neues. Wählen Sie dann einen vorhandenen Container aus, oder erstellen Sie mithilfe 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.
Klicken Sie in Ihrem Container auf Hochladen, und navigieren Sie zu den in Schritt 1 heruntergeladenen Dateien. Nachdem Sie alle Updatedateien ausgewählt haben, klicken Sie auf Hochladen. Klicken Sie dann auf die Schaltfläche Auswählen, um zur Seite Update importieren zurückzukehren.
Dieser Screenshot veranschaulicht den Importschritt. Dateinamen stimmen möglicherweise nicht mit denen überein, die im Beispiel verwendet werden.
Überprüfen Sie auf der Seite Update importieren die zu importierenden Dateien. Klicken Sie dann auf Update importieren, um den Importvorgang zu starten.
Der Importvorgang beginnt, und auf dem Bildschirm wird der Abschnitt Importverlauf angezeigt. 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.
Informieren Sie sich weiter über das Importieren von Updates.
Erstellen einer Updategruppe
Navigieren Sie oben auf der Seite zur Registerkarte Gruppen und Bereitstellungen.
Klicken Sie auf Gruppe hinzufügen, um eine neue Gruppe zu erstellen.
Wählen Sie in der Liste ein IoT Hub-Tag und eine Geräteklasse aus. Wählen Sie anschließend Gruppe erstellen aus.
Nachdem die Gruppe erstellt wurde, werden das Updatekonformitätsdiagramm und die Gruppenliste aktualisiert. 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.
Die neu erstellte Gruppe und alle verfügbaren Updates für die Geräte in der neuen Gruppe sollten angezeigt werden. 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. Klicken Sie neben der Gruppe auf Bereitstellen, um das beste verfügbare Update für die neue benutzerdefinierte Gruppe aus dieser Ansicht bereitzustellen.
Informieren Sie sich weiter über das Hinzufügen von Tags und Erstellen von Updategruppen.
Bereitstellen des Updates
Nachdem die Gruppe erstellt wurde, sollte ein neues Update für Ihre Gerätegruppe verfügbar sein. Ein Link zum Update sollte unter Bestes Update angezeigt werden. Möglicherweise müssen Sie den Browser einmal aktualisieren. Informieren Sie sich weiter über die Updatekonformität.
Wählen Sie die Zielgruppe aus, indem Sie den Gruppennamen auswählen. Sie werden zu den Gruppendetails unter Allgemeine Informationen zu Gruppen weitergeleitet.
Um die Bereitstellung zu starten, wechseln Sie zur Registerkarte Aktuelle Bereitstellung. Klicken Sie im Abschnitt Verfügbare Updates auf den Link Bereitstellen neben dem gewünschten Update. Das beste verfügbare Update für eine bestimmte Gruppe wird mit Beste hervorgehoben.
Planen Sie den Start Ihrer Bereitstellung unverzüglich oder in der Zukunft. Klicken Sie anschließend auf Erstellen.
Unter Bereitstellungsdetails wird der Status in Aktiv geändert. Das Bereitstellungsupdate ist mit (Wird bereitgestellt) gekennzeichnet.
Zeigen Sie das Kompatibilitätsdiagramm an, um herauszufinden, ob das Update jetzt in Bearbeitung ist.
Nachdem das Gerät erfolgreich aktualisiert wurde, erkennen Sie, dass Ihr Konformitätsdiagramm und die Bereitstellungsdetails so aktualisiert wurden, dass sie übereinstimmen.
Überwachen der Updatebereitstellung
Klicken Sie oben auf der Seite auf die Registerkarte Bereitstellungsverlauf.
Klicken Sie neben der erstellten Bereitstellung auf Details.
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
Bereinigen Sie Ihr Konto, die Instanz, den IoT-Hub und das IoT-Gerät für Device Update, falls Sie diese Komponenten nicht mehr benötigen.