Zelfstudie: Device Update for Azure IoT Hub using the Ubuntu (18.04 x64) simulator reference agent (Device Update for Azure IoT Hub using the Ubuntu (18.04 x64) simulator reference agent (Device Update for device update for Azure IoT Hub using the Ubuntu (18.04 x64) simulator reference agent (
In deze zelfstudie wordt een end-to-end op installatiekopieën gebaseerde update gedemonstreert met Device Update voor IoT Hub. Device Update voor Azure IoT Hub ondersteunt updates op basis van installatiekopieën, pakketten en scripts.
Installatiekopieënupdates bieden een hoger vertrouwensniveau in de eindstatus van het apparaat. Het is doorgaans eenvoudiger om de resultaten van een installatiekopieënupdate te repliceren tussen een preproductieomgeving en een productieomgeving, omdat dit niet dezelfde uitdagingen vormt als het beheren van pakketten en hun afhankelijkheden. Vanwege hun atomische aard kunt u ook eenvoudig een A/B-failovermodel gebruiken.
In deze zelfstudie leert u het volgende:
- Wijs een IoT-apparaat toe aan een groep Apparaatupdates met behulp van tags.
- Download en installeer een installatiekopieën.
- Een update importeren.
- Een installatiekopieënupdate implementeren.
- Bewaak de update-implementatie.
Vereisten
Maak een Device Update-account en instantie die zijn geconfigureerd met een IoT-hub.
Een Ubuntu 18.04-apparaat hebben. Dit apparaat kan een fysieke machine of een virtuele machine zijn.
Download het zip-bestand met de naam
Tutorial_Simulator.zip
van Release Assets in de nieuwste versie en pak het uit.Als uw testapparaat verschilt van uw ontwikkelcomputer, downloadt u het zip-bestand naar beide.
U kunt gebruiken
wget
om het ZIP-bestand te downloaden. Vervang door<release_version>
de nieuwste release, bijvoorbeeld1.0.0
.wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
Een apparaat registreren en een module-id configureren
Voeg een apparaat toe aan het apparaatregister in uw IoT-hub. Elk apparaat dat verbinding maakt met IoT Hub, moet worden geregistreerd.
In deze sectie maken we ook een module-id. Modules zijn onafhankelijke identiteiten voor onderdelen die aanwezig zijn op een IoT-apparaat, waardoor een fijnere granulariteit mogelijk is wanneer u een IoT-apparaat hebt waarop meerdere processen worden uitgevoerd. Voor deze zelfstudie gebruikt u deze module-id voor de Device Update-agent die wordt uitgevoerd op het IoT-apparaat. Zie Moduledubbels begrijpen en gebruiken in IoT Hub voor meer informatie.
- Navigeer vanuit de Azure Portal naar uw IoT-hub.
- Selecteer Apparaten in het linkerdeelvenster. Selecteer vervolgens Apparaat toevoegen.
- Voer onder Apparaat-id een naam in voor het apparaat. Zorg ervoor dat het selectievakje Automatisch genereren van sleutels is ingeschakeld.
- Selecteer Opslaan.
- U keert nu terug naar de pagina Apparaten en het apparaat dat u hebt gemaakt, moet in de lijst staan. Selecteer dat apparaat.
- Selecteer Module-identiteit toevoegen.
- Voer onder Naam van moduleidentiteit een naam in voor de module, bijvoorbeeld DUAgent.
- Selecteer Opslaan
De module connection string kopiëren
- In de apparaatweergave ziet u de nieuwe module onder de kop Module-identiteiten . Selecteer de naam van de module om de details te openen.
- Selecteer het pictogram Kopiëren naast Verbindingsreeks (primaire sleutel). Sla deze connection string op om te gebruiken wanneer u de Device Update-agent configureert. Deze tekenreeks is uw module-connection string.
Een tag toevoegen aan uw moduledubbel
Nog steeds op de pagina met details van de module-identiteit selecteert u Module Identity Twin
Voeg een nieuwe tagwaarde voor Device Update toe op hetzelfde niveau als
modelId
enversion
in het dubbelbestand, zoals wordt weergegeven:"tags": { "ADUGroup": "DU-simulator-tutorial" },
Elk apparaat dat wordt beheerd door Device Update, heeft deze gereserveerde tag nodig, waarmee het apparaat wordt toegewezen aan een Device Update-groep. Dit kan zich in de apparaatdubbel of in een moduledubbel bevinden, zoals hier wordt weergegeven. Elk apparaat kan slechts aan één Apparaatupdategroep worden toegewezen.
Selecteer Opslaan. De portal formatteert de moduledubbel opnieuw om de tag op te nemen in de json-structuur.
De Device Update-agent installeren en configureren
De Device Update-agent wordt uitgevoerd op elk apparaat dat wordt beheerd door Device Update. Voor deze zelfstudie configureren we deze om te worden uitgevoerd als een simulator, zodat we kunnen zien hoe een update kan worden toegepast op een apparaat zonder de configuratie van het apparaat daadwerkelijk te wijzigen.
Voeg op uw IoT-apparaat de Microsoft-pakketopslagplaats toe en voeg vervolgens de Ondertekeningssleutel voor het Microsoft-pakket toe aan uw lijst met vertrouwde sleutels.
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
Installeer de .deb-pakketten van de Device Update-agent.
sudo apt-get update sudo apt-get install deviceupdate-agent
Open het configuratiebestand van de agent.
sudo nano /etc/adu/du-config.json
Werk de volgende waarden bij in het configuratiebestand:
-
fabrikant: -
"Contoso"
Deze waarde wordt gebruikt om het IoT-apparaat te classificeren voor gerichte updates. -
model: -
"Video"
Deze waarde wordt gebruikt om het IoT-apparaat te classificeren voor gerichte updates. -
naam:
"aduagent"
- agents.connectionData: geef de connection string op die u hebt gekopieerd uit de module-identiteit.
-
agents.manufacturer:
"Contoso"
-
agents.model:
"Video"
Zie Configuratiebestand voor apparaatupdates voor meer informatie over de parameters in deze stap.
Notitie
U kunt ook de IoT Identity Service gebruiken om het apparaat in te richten. Hiervoor installeert u de iot indentity-service voordat u de Device Update-agent installeert. Configureer vervolgens de Device Update-agent met
"connectionType": "AIS"
enconnectionData
als een lege tekenreeks in het configuratiebestand.-
fabrikant: -
Sla het bestand op en sluit het.
CTRL
+X
,Y
enEnter
.Stel de agent in om te worden uitgevoerd als een simulator. Voer de volgende opdracht uit op het IoT-apparaat, zodat de Device Update-agent de simulatorhandler aanroept om een pakketupdate met SWUpdate (
microsoft/swupdate:1
) te verwerken.sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
Tutorial_Simulator.zip
Pak het bestand uit dat u hebt gedownload in de vereisten en kopieer hetsample-du-simulator-data.json
bestand naar detmp
map.cp sample-du-simulator-data.json /tmp/du-simulator-data.json
Als /tmp niet bestaat, voert u het volgende uit:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Machtigingen voor het nieuwe bestand wijzigen.
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Start de Device Update-agent opnieuw op om uw wijzigingen toe te passen.
sudo systemctl restart deviceupdate-agent
Een update importeren
In deze sectie gebruikt u de bestanden TutorialImportManifest_Sim.importmanifest.json
en adu-update-image-raspberrypi3.swu
van de die zijn gedownload Tutorial_Simulator.zip
in de vereisten. Het updatebestand wordt opnieuw gebruikt uit de raspberry pi-zelfstudie. Omdat de update in deze zelfstudie is gesimuleerd, maakt de specifieke bestandsinhoud niet uit.
Meld u op uw ontwikkelcomputer aan bij de Azure Portal en ga naar uw IoT-hub die is geconfigureerd met Device Update.
Selecteer in het navigatiedeelvenster onder Apparaatbeheerde optie Updates.
Selecteer Een nieuwe update importeren.
Selecteer Selecteren uit opslagcontainer.
Selecteer een bestaand opslagaccount of maak een nieuw account door + Opslagaccount te selecteren. Selecteer vervolgens een bestaande container of maak een nieuwe container door + Container te selecteren. Deze container wordt gebruikt om uw updatebestanden te faseren voor importeren.
Notitie
U wordt aangeraden elke keer dat u een update importeert een nieuwe container te gebruiken om te voorkomen dat bestanden uit eerdere updates per ongeluk worden geïmporteerd. Als u geen nieuwe container gebruikt, moet u alle bestanden uit de bestaande container verwijderen voordat u deze stap voltooit.
Selecteer uploaden in uw container en ga naar de bestanden die u hebt gedownload in de vereisten. Selecteer de bestanden TutorialImportManifest_Sim.importmanifest.json en adu-update-image-raspberrypi3.swu en selecteer vervolgens Uploaden.
Schakel het selectievakje bij elk bestand in en selecteer vervolgens de knop Selecteren om terug te keren naar de pagina Update importeren .
Controleer op de pagina Update importeren de bestanden die moeten worden geïmporteerd. Selecteer vervolgens Update importeren om het importproces te starten.
Het importproces begint en het scherm schakelt over naar de sectie Importgeschiedenis . In de kolom Status wordt de import weergegeven als Wordt uitgevoerd terwijl het importeren wordt uitgevoerd en Geslaagd wanneer het importeren is voltooid. Gebruik de knop Vernieuwen om de status bij te werken.
Wanneer de kolom Status aangeeft dat het importeren is voltooid, selecteert u de kop Beschikbare updates . Als het goed is, ziet u nu de geïmporteerde update in de lijst.
Zie Een update importeren naar Device Update voor IoT Hub voor meer informatie over het importproces.
Apparaatgroepen weergeven
Device Update maakt gebruik van groepen om apparaten te ordenen. Device Update sorteert apparaten automatisch in groepen op basis van de toegewezen tags en compatibiliteitseigenschappen. Elk apparaat behoort tot slechts één groep, maar groepen kunnen meerdere subgroepen hebben om verschillende apparaatklassen te sorteren.
Ga naar het tabblad Groepen en implementaties boven aan de pagina Updates.
Bekijk de lijst met groepen en de grafiek voor updatenaleving. In de grafiek voor updatenaleving ziet u het aantal apparaten in verschillende nalevingsstatussen: Bij de laatste update, Nieuwe updates beschikbaar en Updates wordt uitgevoerd. Meer informatie over updatecompatibiliteit.
U ziet een apparaatgroep die het gesimuleerde apparaat bevat dat u in deze zelfstudie hebt ingesteld, samen met eventuele beschikbare updates voor de apparaten in de nieuwe groep. Als er apparaten zijn die niet voldoen aan de apparaatklassevereisten van de groep, worden ze weergegeven in een bijbehorende ongeldige groep.
Zie Apparaatgroepen beheren voor meer informatie over tags en groepen.
De update implementeren
Op het tabblad Groepen en implementaties ziet u een nieuwe update die beschikbaar is voor uw apparaatgroep. Een koppeling naar de update moet onder Status staan. U moet de pagina mogelijk vernieuwen.
Selecteer de groepsnaam om de details ervan weer te geven.
Op de pagina met groepsdetails ziet u dat er één nieuwe update beschikbaar is. Selecteer Implementeren om de implementatie te starten.
De update die we in de vorige sectie hebben geïmporteerd, wordt vermeld als de best beschikbare update voor deze groep. Selecteer Implementeren.
Plan de implementatie om onmiddellijk te starten en selecteer vervolgens Maken.
Ga op de pagina met groepsdetails naar het tabblad Huidige updates . Onder Implementatiedetails wordt Status ingesteld op Actief.
Nadat uw apparaat is bijgewerkt, gaat u terug naar de pagina Updates. U ziet dat uw nalevingsgrafiek en implementatiedetails worden bijgewerkt om hetzelfde weer te geven.
De update-implementatie bewaken
Ga terug naar de pagina met groepsdetails en selecteer het tabblad Implementatiegeschiedenis .
Selecteer Implementatiedetails weergeven naast de implementatie die u hebt gemaakt.
Selecteer Vernieuwen om de meest recente statusdetails weer te geven.
U hebt nu een geslaagde end-to-end installatiekopie-update voltooid met behulp van Device Update voor IoT Hub met behulp van de referentieagent voor de Ubuntu-simulator (18.04 x64).
Resources opschonen
Als u doorgaat met de volgende zelfstudie, behoudt u uw Apparaatupdate en IoT Hub resources.
Wanneer u deze resources niet meer nodig hebt, kunt u deze resources verwijderen in de Azure Portal.
Navigeer in Azure Portal naar uw resourcegroep.
Kies welke resources u wilt verwijderen.
- Als u alle resources in de groep wilt verwijderen, selecteert u Resourcegroep verwijderen.
- Als u alleen geselecteerde resources wilt verwijderen, gebruikt u de selectievakjes om de resources te selecteren en selecteert u vervolgens Verwijderen.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u een update van een installatiekopieën importeert en implementeert. Lees vervolgens hoe u apparaatpakketten bijwerkt.