Tutorial: Device Update for Azure IoT Hub mit dem Paket-Agent unter Ubuntu Server 18.04 x64
Device Update for Azure IoT Hub unterstützt image-, paket- und skriptbasierte Updates.
Paketbasierte Updates sind gezielte Updates, die nur eine bestimmte Komponente oder Anwendung auf dem Gerät ändern. Dies führt zu einem geringeren Verbrauch an Bandbreite und verkürzt die Zeit zum Herunterladen und Installieren des Updates. Paketbasierte Updates ermöglichen normalerweise auch eine geringere Ausfallzeit von Geräten, wenn Sie ein Update anwenden, und sie vermeiden den Mehraufwand beim Erstellen von Images. Sie verwenden ein APT-Manifest, das dem Device Update-Agent die Informationen liefert, die er benötigt, um die in der APT-Manifestdatei angegebenen Pakete (und deren Abhängigkeiten) aus einem bestimmten Repository herunterzuladen und zu installieren.
In diesem Tutorial werden Sie durch das Aktualisieren von Azure IoT Edge unter Ubuntu Server 18.04 x64 mithilfe des Device Update-Paket-Agents geführt. Obwohl im Tutorial die Aktualisierung von IoT Edge veranschaulicht wird, könnten Sie mit ähnlichen Schritten auch andere Pakete aktualisieren, z. B. die von ihm verwendete Container-Engine.
Die Tools und Konzepte in diesem Tutorial gelten weiterhin, auch wenn Sie beabsichtigen, eine andere Konfiguration der Betriebssystemplattform zu verwenden. Schließen Sie diese Einführung in einen End-to-End-Updateprozess ab. Wählen Sie dann Ihre bevorzugte Form der Aktualisierung einer Betriebssystemplattform aus, um die Details zu erfahren.
In diesem Tutorial lernen Sie Folgendes:
- Herunterladen und Installieren des Device Update-Agents und seiner Abhängigkeiten
- Hinzufügen eines Tags zu Ihrem Gerät
- Importieren eines Updates
- Gerätegruppe erstellen.
- Bereitstellen eines Paketupdates
- Überwachen der Updatebereitstellung
Voraussetzungen
Erstellen Sie ein Konto und eine Instanz für Device Update, wenn Sie diese Schritte noch nicht ausgeführt haben. Konfigurieren Sie einen IoT-Hub.
Dazu benötigen Sie die Verbindungszeichenfolge für ein IoT Edge-Gerät.
Wenn Sie das Tutorial zum Simulator-Agent für vorherige Tests genutzt haben, führen Sie den folgenden Befehl aus, um den APT-Handler aufzurufen und in diesem Tutorial 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'
Vorbereiten eines Geräts
Bereiten Sie ein Gerät automatisch oder manuell vor.
Verwenden der Schaltfläche „Automatisierte Bereitstellung in Azure“
Der Einfachheit halber wird in diesem Tutorial eine Cloud-Init-basierte Azure Resource Manager-Vorlage verwendet, mit der Sie schnell einen virtuellen Computer mit Ubuntu 18.04 LTS einrichten können. Sie installiert sowohl die Azure IoT Edge-Runtime als auch den Device Update-Paket-Agent. Anschließend konfiguriert sie das Gerät automatisch mit Bereitstellungsinformationen, wobei sie die Geräteverbindungszeichenfolge für ein von Ihnen angegebenes IoT Edge-Gerät (Voraussetzung) verwendet. Bei Verwendung der Resource Manager-Vorlage muss außerdem keine SSH-Sitzung gestartet werden, um das Setup abzuschließen.
Wählen Sie zuerst die Schaltfläche aus:
Füllen Sie die verfügbaren Textfelder aus:
- Abonnement: Das aktive Azure-Abonnement, in dem der virtuelle Computer bereitgestellt werden soll.
- Ressourcengruppe: Eine vorhandene oder neu erstellte Ressourcengruppe, die den virtuellen Computer und die ihm zugeordneten Ressourcen enthalten soll.
- Region: Die geografische Region, in der der virtuelle Computer bereitgestellt werden soll. Dieser Wert ist standardmäßig der Speicherort der ausgewählten Ressourcengruppe.
- Präfix der DNS-Bezeichnung: Ein erforderlicher Wert Ihrer Wahl, der dem Hostnamen des virtuellen Computers vorangestellt wird.
- Administratorbenutzername: Ein Benutzername, der Rootberechtigungen für die Bereitstellung erhält.
- Geräte-Verbindungszeichenfolge: Eine Geräte-Verbindungszeichenfolge für ein Gerät, das in Ihrem vorgesehenen IoT-Hub erstellt wurde.
- VM-Größe: Die Größe des bereitzustellenden virtuellen Computers.
- Ubuntu-Betriebssystemversion: Die Version des Ubuntu-Betriebssystems, die auf dem virtuellen Basiscomputer installiert werden soll. Behalten Sie den Standardwert bei, weil er bereits auf „Ubuntu 18.04-LTS“ festgelegt wurde.
- Authentifizierungstyp: Wählen Sie sshPublicKey oder ein Kennwort entsprechend Ihren Anforderungen aus.
- Administratorkennwort oder Schlüssel: Der Wert des öffentlichen SSH-Schlüssels oder der Wert des Kennworts, basierend auf der Wahl des Authentifizierungstyps.
Nachdem alle Felder ausgefüllt wurden, aktivieren Sie das Kontrollkästchen unten auf der Seite, um die Bedingungen zu akzeptieren. Wählen Sie Kaufen aus, um mit der Bereitstellung zu beginnen.
Überprüfen Sie, ob die Bereitstellung erfolgreich abgeschlossen wurde. Warten Sie nach Beendigung der Bereitstellung einige Minuten, bis die Nachinstallation und die Konfiguration abgeschlossen sind, bevor Sie IoT Edge und den Device Update-Paket-Agent installieren.
Eine virtuelle Computerressource sollte in der ausgewählten Ressourcengruppe bereitgestellt worden sein. Notieren Sie sich den Computernamen, der das Format
vm-0000000000000
hat. Notieren Sie sich auch den zugeordneten DNS-Namen, der das Format „<dnsLabelPrefix>
.<location>
.cloudapp.azure.com“ hat.Sie können den DNS-Namen im Azure-Portal aus dem Abschnitt Übersicht des neu bereitgestellten virtuellen Computers abrufen.
Tipp
Wenn Sie nach dem Setup eine SSH-Verbindung mit dieser VM herstellen möchten, verwenden Sie den zugeordneten DNS-Namen mit folgendem Befehl:
ssh <adminUsername>@<DNS_Name>
.Öffnen Sie die Konfigurationsdetails (Weitere Informationen zum Einrichten der Konfigurationsdatei finden Sie hier mit dem folgenden Befehl. Legen Sie Ihren connectionType als "AIS" und "connectionData" als leere Zeichenfolge fest.
/etc/adu/du-config.json
- Starten Sie den Device Update-Agent neu, indem Sie den folgenden Befehl ausführen:
sudo systemctl restart adu-agent
Softwarepakete von Device Update for Azure IoT Hub unterliegen den folgenden 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.
Manuelles Vorbereiten eines Geräts
Ähnlich wie die Schritte, die durch das Skript „cloud-init“ automatisiert wurden, werden die folgenden manuellen Schritte zum Installieren und Konfigurieren eines Geräts verwendet. Mit diesen Schritten können Sie ein physisches Gerät vorbereiten.
Folgen Sie den Anleitungen unter Installieren der Azure IoT Edge-Runtime.
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 die DEB-Pakete des Device Update-Agents:
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
Geben Sie die primäre Verbindungszeichenfolge für das Modul Ihres IoT-Geräts (oder für das Gerät selbst, je nachdem, wie Sie das Gerät mit Device Update bereitgestellt haben) in der Konfigurationsdatei ein, indem Sie den folgenden Befehl ausführen:
/etc/adu/du-config.json
Starten Sie den Device Update-Agent neu, indem Sie den folgenden Befehl ausführen:
sudo systemctl restart adu-agent
Softwarepakete von Device Update for Azure IoT Hub unterliegen den folgenden 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.
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 Edge-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 sie auf „NULL“ festlegen. Wenn Sie beim Device Update-Agent die Geräteidentität verwenden, nehmen Sie diese Änderungen im Gerätezwilling vor.
Fügen Sie wie hier gezeigt einen neuen Device Update-Tagwert hinzu:
"tags": { "ADUGroup": "<CustomTagValue>" },
Importieren des Updates
Wechseln Sie in GitHub zu Device Update-Releases, und wählen Sie die Dropdownliste Ressourcen aus. Laden Sie die Datei
Tutorial_IoTEdge_PackageUpdate.zip
herunter, indem Sie sie auswählen. Extrahieren Sie den Inhalt des Ordners, um ein APT-Beispielmanifest („sample-1.0.2-aziot-edge-apt-manifest.json“) und das zugehörige Importmanifest („sample-1.0.2-aziot-edge-importManifest.json“) zu ermitteln.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 zum 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.
Wählen Sie in Ihrem Container Hochladen aus, und wechseln Sie zu den in Schritt 1 heruntergeladenen Dateien. Nachdem Sie alle Updatedateien ausgewählt haben, wählen Sie Hochladen aus. 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, wählen Sie den Header Verfügbare Updates aus. 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.
Wählen Sie die Schaltfläche Gruppe hinzufügen aus, 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, sehen Sie, dass das Updatekonformitätsdiagramm und die Liste der Gruppen aktualisiert wurden. 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 es Geräte gibt, die die Geräteklassenanforderungen der Gruppe nicht erfüllen, werden sie in einer entsprechenden ungültigen Gruppe angezeigt. Um das beste verfügbare Update für die neue benutzerdefinierte Gruppe aus dieser Ansicht bereitzustellen, wählen Sie neben der Gruppe Bereitstellen aus.
Informieren Sie sich weiter über das Hinzufügen von Tags und Erstellen von Updategruppen.
Bereitstellen des Updates
Nachdem die Gruppe erstellt wurde, sollte unter Bestes Update ein neues Update für Ihre Gerätegruppe mit dem entsprechenden Link 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 einzuleiten, wechseln Sie zur Registerkarte Aktuelle Bereitstellung. Wählen Sie im Abschnitt Verfügbare Updates neben dem gewünschten Update den Link Bereitstellen aus. 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.
Tipp
Das Startdatum und die Uhrzeit sind standardmäßig auf Werte festgelegt, die vom aktuellen Zeitpunkt aus 24 Stunden in der Zukunft liegen. Wählen Sie unbedingt ein anderes Datum und eine andere Uhrzeit aus, wenn die Bereitstellung früher beginnen soll.
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.
Wählen Sie neben der von Ihnen erstellten Bereitstellung den Link Details aus.
Wählen Sie Aktualisieren aus, um die neuesten Statusdetails anzuzeigen.
Sie haben jetzt mithilfe von Device Update for IoT Hub ein erfolgreiches End-to-End-Paketupdate auf einem Ubuntu Server 18.04 x64-Gerät abgeschlossen.
Bereinigen von Ressourcen
Bereinigen Sie Ihr Konto, die Instanz und den IoT-Hub für Device Update, wenn Sie diese Komponenten nicht mehr benötigten. Bereinigen Sie außerdem das IoT Edge-Gerät, wenn Sie die VM über die Schaltfläche In Azure bereitstellen erstellt haben. Wechseln Sie zum Bereinigen von Ressourcen zu jeder einzelnen Ressource, und wählen Sie Löschen aus. Bereinigen Sie eine Device Update-Instanz, bevor Sie das Device Update-Konto bereinigen.
Nächste Schritte
In den folgenden Tutorials finden Sie eine einfache Demonstration von Device Update for IoT Hub:
- Image-Update: Erste Schritte mit Raspberry Pi 3 B+ Yocto-Referenzimage ist über Open Source erweiterbar, damit Sie Ihre eigenen Images für andere Architekturen nach Bedarf erstellen können.
- Proxy-Update: Erste Schritte mit dem Binär-Agenten für Device Update für nachgeschaltete Geräte
- Erste Schritte mit Ubuntu (18.04 x64) Simulator Reference Agent
- Tutorial: Device Update for Azure IoT Hub für das Azure-Echtzeit-Betriebssystem