Tutorial: Azure Device Update für IoT Hub mit einem Simulator-Agent
Azure Device Update for IoT Hub unterstützt image-, paket- und skriptbasierte Updates. In diesem Tutorial wird ein end-to-end imagebasiertes Geräteupdate-Update veranschaulicht, das einen Ubuntu-Simulator-Agent verwendet.
Bildupdates bieten ein hohes Maß an Vertrauen im Endzustand des Geräts und stellen nicht die gleichen Paket- und Abhängigkeitsverwaltungs-Herausforderungen wie paket- oder skriptbasierte Updates dar. Es ist einfacher, die Ergebnisse einer Imageaktualisierung zwischen einer Vorproduktions- und Produktionsumgebung zu replizieren oder einfach ein A/B-Failovermodell zu übernehmen.
In diesem Tutorial:
- Weisen Sie ein IoT-Gerät mithilfe von Tags einer Device Update-Gruppe zu.
- Herunterladen und Installieren eines Image-Updates.
- Importieren der Bildaktualisierung.
- Bereitstellen des Imageupdates.
- Anzeigen des Bereitstellungsverlaufs des Updates.
Voraussetzungen
- Ein Ubuntu 18.04 x64 physischer oder virtueller Computer
- Erstellen Sie ein Device Update-Konto und eine Device Update-Instanz, die mit einem IoT-Hub konfiguriert ist.
Registrieren und Konfigurieren eines Geräts und Moduls
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.
- Öffnen Sie im Azure-Portaldie IoT-Hubseite, die Ihrer Device Update-Instanz zugeordnet ist.
- Wählen Sie im Navigationsbereich Geräteverwaltung>Geräte aus.
- Wählen Sie auf der Seite "Geräte " die Option "Gerät hinzufügen" 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 wird.
- Wählen Sie Speichern. Das Gerät wird in der Liste auf der Seite "Geräte" angezeigt.
Erstellen einer Modulidentität
Nachdem Sie das Gerät registriert haben, erstellen Sie eine Modulidentität. Module sind unabhängige Identitäten für IoT-Gerätekomponenten, die eine feinere Granularität ermöglichen, wenn das Gerät mehrere Prozesse ausführt.
In diesem Tutorial verwenden Sie diese Modulkennung für den Device Update-Agent, der auf dem Gerät ausgeführt wird. Weitere Informationen finden Sie unter Verstehen und Verwenden von Modulzwillingen in IoT Hub.
- Wählen Sie auf der Seite Geräte das Gerät aus, das Sie registriert haben.
- Wählen Sie auf der Geräteseite Modulidentität hinzufügen aus.
- Geben Sie auf der Seite Modulidentität hinzufügen unter Name der Modulidentität einen Namen für das Modul ein, z. B. DeviceUpdateAgent.
- Wählen Sie Speichern. Die neue Modulidentität wird auf der Geräteseite unter Modulidentitäten angezeigt.
- Wählen Sie den Modulnamen aus und klicken Sie auf der Seite Details zur Modulidentität auf das Kopieren-Symbol neben Verbindungszeichenfolge (Primärschlüssel). Speichern Sie diese Modulverbindungszeichenfolge, um sie beim Konfigurieren des Device Update-Agents zu verwenden.
Hinzufügen eines Gruppentags zu Ihrem Modulzwilling
Device Update organisiert Geräte automatisch in Gruppen basierend auf ihren zugewiesenen Tags und Kompatibilitätseigenschaften. Jedes Gerät gehört nur zu einer Gruppe, aber Gruppen können mehrere Untergruppen haben, um unterschiedliche Geräteklassen zu sortieren.
Sie können jedem Gerät, das von der Geräteaktualisierung verwaltet wird, einen Tag zuweisen, um das Gerät einer Geräteaktualisierungsgruppe zuzuordnen. Das Tag kann sich wie in diesem Tutorial im Gerätezwilling oder im Modulzwilling befinden. Jedes Gerät kann nur einer Device Update-Gruppe zugewiesen werden.
Wählen Sie auf der Seite Details zur Modulidentität Modulidentitätszwilling aus.
Fügen Sie auf der Seite Modulidentitätszwilling einen neuen
DeviceUpdateGroup
Tag zum JSON-Code auf derselben Ebene wiemodelId
undversion
hinzu, wie folgt:"tags": { "DeviceUpdateGroup": "DU-simulator-tutorial" },
Wählen Sie Speichern. 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 installieren Sie den Geräteaktualisierungs-Agent auf einem Ubuntu 18.04-Gerät und konfigurieren ihn so, dass er als Simulator läuft. Dies zeigt, wie Sie ein Update auf ein Gerät anwenden können, ohne dessen Konfiguration zu ändern.
Hinweis
Sie können auch den Azure IoT-Identitätsdienst verwenden, um das Gerät bereitzustellen. Hierzu installieren Sie den Azure IoT-Identitätsdienst, bevor Sie den Device Update-Agent installieren. Konfigurieren Sie anschließend den Device Update-Agent mit "connectionType": "AIS"
und lassen Sie connectionData
als leere Zeichenfolge in der Konfigurationsdatei.
Fügen Sie 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
Installieren Sie die .deb-Pakete des Device Update-Agents.
sudo apt-get update sudo apt-get install deviceupdate-agent
Öffnen Sie die du-config.json Agent-Konfigurationsdatei.
sudo nano /etc/adu/du-config.json
Aktualisieren Sie du-config.json mit den folgenden Beispielwerten. Ersetzen Sie den
<connection string>
Platzhalter durch die Verbindungszeichenfolge, die Sie aus der Modulidentität kopiert haben. Weitere Informationen zu den Parametern finden Sie unter Device Update-Konfigurationsdatei.manufacturer: "contoso"
model: "video"
agents.name: "aduagent"
agents.connectionData: <connection string>
agents.manufacturer: "contoso"
agents.model: "video"
Die bearbeitete du-config.json Datei sollte wie folgt aussehen:
{ "schemaVersion": "1.0", "aduShellTrustedUsers": [ "adu", "do" ], "manufacturer": "contoso", "model": "video", "agents": [ { "name": "aduagent", "runas": "adu", "connectionSource": { "connectionType": "string", "connectionData": <connection string> }, "manufacturer": "contoso", "model": "video" } ] }
Drücken Sie STRG+X , um den Editor zu beenden, und geben Sie y ein, um Ihre Änderungen zu speichern.
Um den Agent für die Ausführung als Simulator einzurichten, führen Sie den folgenden Befehl auf dem IoT-Gerät aus. Der Geräteupdate-Agent ruft den Simulatorhandler auf, um Updates zu verarbeiten, die die Microsoft SWUpdate-Erweiterung verwenden.
sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
Abrufen der Simulatordateien
Laden Sie das Archiv Tutorial_Simulator.zip aus dem Abschnitt Assets der neuesten Version auf der Seite GitHub Device Update Releases herunter und extrahieren Sie es auf Ihrem Ubuntu 18.04-Gerät.
Sie können
wget
verwenden, um die ZIP-Datei herunterzuladen. Ersetzen Sie<release_version>
durch die neueste Version, z. B1.0.0
.wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
Kopieren Sie die Datei sample-du-simulator-data.json aus dem extrahierten Ordner Tutorial_Simulator in den Ordner tmp.
cp sample-du-simulator-data.json /tmp/du-simulator-data.json
Hinweis
Falls der Ordner tmp nicht existiert, erstellen Sie ihn wie folgt:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Ändern Sie die Berechtigungen für die Datei /tmp/sample-du-simulator-data.json.
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Starten Sie den Device Update-Agent neu, um Ihre Änderungen anzuwenden.
sudo systemctl restart deviceupdate-agent
Importieren des Updates
Laden Sie das Archiv Tutorial_Simulator.zip aus dem Abschnitt Assets der neuesten Version auf der Seite GitHub Device Update Releases herunter und extrahieren Sie es auf Ihrem Entwicklungsrechner, falls dieser sich von Ihrem Ubuntu 18.04 IoT-Gerät unterscheidet. Dieser Abschnitt verwendet die Dateien TutorialImportManifest_Sim.importmanifest.json und adu-update-image-raspberrypi3.swu aus dem Ordner Tutorial_Simulator.
Die Updatedatei ist die gleiche wie im Raspberry Pi-Tutorial. Da das Update in diesem Tutorial simuliert wird, spielt der spezifische Dateiinhalt keine Rolle.
Melden Sie sich auf Ihrem Entwicklungsrechner beim Azure-Portal an und navigieren Sie zum IoT-Hub, der mit Ihrer Device Update-Instanz konfiguriert ist.
Wählen Sie im Navigationsbereich Geräteverwaltung>Updates aus.
Wählen Sie auf der Seite „Updates“ die Option „Neues Update importieren“aus.
Wählen Sie auf der Seite Update importieren Aus dem Speichercontainer auswählen aus.
Wählen Sie ein vorhandenes Speicherkonto aus, oder erstellen Sie ein neues Speicherkonto durch Auswahl von Speicherkonto.
Wählen Sie einen vorhandenen Container aus, oder erstellen Sie durch Auswahl von Container einen neuen. Dieser Container wird zum Stagen der Updatedateien für den Import verwendet.
Hinweis
Um versehentlichen Import von Dateien aus früheren Updates zu vermeiden, verwenden Sie bei jedem Import eines Updates einen neuen Container. Wenn Sie keinen neuen Container verwenden, müssen Sie alle Dateien aus dem vorhandenen Container löschen.
Wählen Sie auf der Container-Seite Hochladen aus. Durchsuchen Sie den Ordner und wählen Sie die Dateien TutorialImportManifest_Sim.importmanifest.json und adu-update-image-raspberrypi3.swu aus, und klicken Sie anschließend auf Hochladen.
Aktivieren Sie die Kontrollkästchen neben beiden Dateien und wählen Sie anschließend Auswählen, um zur Seite Update importieren zurückzukehren.
Überprüfen Sie auf der Seite Update importieren die Dateien, die importiert werden sollen, und wählen Sie anschließend Update importieren aus.
Der Importprozess beginnt, und Sie können Importverlauf anzeigen auswählen, um den Importverlauf und -status einzusehen. Auf der Seite Updateverlauf zeigt das Feld Status den Wert Erfolgreich an, wenn der Import abgeschlossen ist. Wählen Sie zum Aktualisieren des Status die Option Aktualisieren aus.
Das importierte Update wird nun auf der Seite Updates angezeigt.
Weitere Informationen zum Importvorgang finden Sie unter Importieren eines Updates für Device Update for IoT Hub.
Auswählen der Gerätegruppe
Sie können das Gruppentag verwenden, das Sie auf Ihr Gerät angewendet haben, um das Update für die Gerätegruppe bereitzustellen. Wählen Sie oben auf der Seite Updates den Tab Gruppen und Bereitstellungen, um die Liste der Gruppen und Bereitstellungen sowie das Updateüberwachungs-Diagramm anzuzeigen.
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. Weitere Informationen finden Sie unter Konformität von Device Update.
Unter Gruppenname sehen Sie eine Liste aller Gerätegruppen für Geräte, die mit diesem IoT-Hub verbunden sind, sowie deren verfügbare Updates. Links zur Bereitstellung der Updates finden Sie unter Status. Alle Geräte, die nicht den Anforderungen der Geräteklasse einer Gruppe entsprechen, erscheinen in einer entsprechenden ungültigen Gruppe. Weitere Informationen zu Tags und Gruppen finden Sie unter Verwalten von Gerätegruppen.
Sie sollten die Gerätegruppe sehen, die das in diesem Tutorial eingerichtete simulierte Gerät enthält. Wählen Sie den Gruppennamen aus, um dessen Details anzuzeigen.
Bereitstellen des Updates
Auf der Seite mit den Gruppendetails sollten Sie sehen, dass ein neues Update für diese Gruppe verfügbar ist. Wählen Sie Bereitstellen aus, um die Bereitstellung zu starten.
Das von Ihnen importierte Update wird als das beste verfügbare Update für diese Gruppe aufgeführt. Klicken Sie auf Bereitstellen.
Planen Sie Ihre Bereitstellung, oder beginnen Sie sofort, und wählen Sie dann Erstellen aus.
Wechseln Sie zum Tab Aktuelle Updates. Unter Bereitstellungsdetails wird der Status in Aktiv geändert.
Nachdem Ihr Gerät erfolgreich aktualisiert wurde, kehren Sie zur Seite Updates zurück. Sie sollten sehen, dass Das Compliancediagramm und die Bereitstellungsdetails aktualisiert wurden, um das installierte Update einzuschließen.
Updatebereitstellungsverlauf anzeigen
Kehren Sie zur Seite mit den Gruppendetails zurück, und wählen Sie die Registerkarte Bereitstellungsverlauf aus.
Wählen Sie neben der von Ihnen erstellten Bereitstellung Bereitstellungsdetails anzeigen aus. Wählen Sie Aktualisieren aus, um die neuesten Statusdetails anzuzeigen.
Bereinigen von Ressourcen
Wenn Sie mit dem nächsten Tutorial fortfahren möchten, behalten Sie Ihre Device Update- und IoT Hub-Ressourcen bei. Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht mehr benötigen, können Sie sie löschen.
- Wechseln Sie im Azure-Portal zur Ressourcengruppe, die die Ressourcen enthält.
- Wenn Sie alle Ressourcen in der Gruppe löschen möchten, wählen Sie Ressourcengruppe löschen aus.
- Wenn Sie nur einige der Ressourcen löschen möchten, verwenden Sie die Kontrollkästchen, um die gewünschten Ressourcen auszuwählen, und klicken Sie anschließend auf Löschen.