Zelfstudie: Azure Device Update voor IoT Hub met behulp van een simulatoragent
Azure Device Update voor IoT Hub ondersteunt updates op basis van installatiekopieën, pakketten en scripts. In deze zelfstudie ziet u een end-to-end update voor apparaatupdate op basis van installatiekopieën die gebruikmaakt van een Ubuntu-simulatoragent.
Installatiekopieënupdates bieden een hoge mate van vertrouwen in de eindstatus van het apparaat en vormen niet dezelfde problemen met pakket- en afhankelijkheidsbeheer als updates op basis van pakketten of scripts. Het is eenvoudiger om de resultaten van een installatiekopie-update tussen een preproductie- en productieomgeving te repliceren of eenvoudig een A/B-failovermodel te gebruiken.
In deze zelfstudie hebt u:
- Wijs een IoT-apparaat toe aan een apparaatupdategroep met behulp van tags.
- Download en installeer een installatiekopieënupdate.
- Importeer de update van de installatiekopieën.
- Implementeer de update van de installatiekopieën.
- Bekijk de update-implementatiegeschiedenis.
Vereisten
- Een fysieke of virtuele ubuntu 18.04 x64-machine
- Een Apparaatupdate-account en -exemplaar dat is geconfigureerd met een IoT-hub
Een apparaat en module registreren en configureren
Voeg een apparaat toe aan het apparaatregister in uw IoT-hub. Elk apparaat dat verbinding maakt met IoT Hub, moet worden geregistreerd.
- Open in Azure Portal de ioT-hubpagina die is gekoppeld aan uw Device Update-exemplaar.
- Selecteer Apparaatbeheerapparaten> in het navigatiedeelvenster.
- Selecteer Apparaat toevoegen op de pagina Apparaten.
- Voer onder Apparaat-id een naam in voor het apparaat. Zorg ervoor dat het selectievakje Automatisch genereren van sleutels is ingeschakeld.
- Selecteer Opslaan. Het apparaat wordt weergegeven in de lijst op de pagina Apparaten .
Een module-id maken
Nadat u het apparaat hebt geregistreerd, maakt u een module-id. Modules zijn onafhankelijke identiteiten voor IoT-apparaatonderdelen, waardoor gedetailleerdere granulariteit mogelijk is wanneer het apparaat meerdere processen uitvoert.
Voor deze zelfstudie maakt u een module-id voor de Device Update-agent die op het apparaat wordt uitgevoerd. Zie Moduledubbels begrijpen en gebruiken in IoT Hub voor meer informatie.
- Selecteer op de pagina Apparaten het apparaat dat u hebt geregistreerd.
- Selecteer Module-id toevoegen op de apparaatpagina.
- Voer op de pagina Module-id toevoegen, onder Module-id-naam, een naam in voor de module, zoals DeviceUpdateAgent.
- Selecteer Opslaan. De nieuwe module-id wordt weergegeven op de apparaatpagina onder Module-identiteiten.
- Selecteer de modulenaam en selecteer op de pagina Module-id-details het pictogram Kopiëren naast de verbindingsreeks (primaire sleutel). Sla deze module op verbindingsreeks te gebruiken wanneer u de Device Update-agent configureert.
Een groepstag toevoegen aan uw moduledubbel
Device Update organiseert apparaten automatisch in groepen op basis van hun toegewezen tags en compatibiliteitseigenschappen. Elk apparaat behoort tot slechts één groep, maar groepen kunnen meerdere subgroepen hebben om verschillende apparaatklassen te sorteren.
U kunt een tag toewijzen aan elk apparaat dat door Device Update wordt beheerd om het apparaat toe te wijzen aan een apparaatupdategroep. De tag kan zich in de apparaatdubbel of in de moduledubbel bevinden, zoals in deze zelfstudie. Elk apparaat kan worden toegewezen aan slechts één Apparaatupdate-groep.
Selecteer Op de pagina Identiteitsdetails van module module de optie Identiteitsdubbel.
Voeg op de pagina Module Identity Twin een nieuwe
DeviceUpdateGroup
tag toe aan de JSON-code op hetzelfde niveau alsmodelId
enversion
, als volgt:"tags": { "DeviceUpdateGroup": "DU-simulator-tutorial" },
Selecteer Opslaan. De portal herformatteert de moduledubbel 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 door Device Update wordt beheerd. In deze zelfstudie installeert u de Device Update-agent op het Ubuntu 18.04-apparaat en configureert u deze om te worden uitgevoerd als simulator, waarmee wordt gedemonstreerd hoe u een update op een apparaat kunt toepassen zonder de apparaatconfiguratie te wijzigen.
Notitie
U kunt de Azure IoT Identity Service ook gebruiken om het apparaat in te richten. Hiervoor installeert u de Azure IoT Identity Service voordat u de Device Update-agent installeert. Configureer vervolgens de Device Update-agent met "connectionType": "AIS"
en laat connectionData
deze staan als een lege tekenreeks in het configuratiebestand.
Voeg de Microsoft-pakketopslagplaats toe en voeg vervolgens de ondertekeningssleutel van 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 Device Update-agent .deb pakketten.
sudo apt-get update sudo apt-get install deviceupdate-agent
Open het configuratiebestand van de du-config.json agent.
sudo nano /etc/adu/du-config.json
Werk du-config.json bij met de volgende voorbeeldwaarden. Vervang de
<connection string>
tijdelijke aanduiding door de verbindingsreeks die u hebt gekopieerd uit de module-id. Zie Device Update-configuratiebestand voor meer informatie over de parameters.manufacturer: "contoso"
model: "video"
agents.name: "aduagent"
agents.connectionData: <connection string>
agents.manufacturer: "contoso"
agents.model: "video"
Het bewerkte du-config.json-bestand moet er als volgt uitzien:
{ "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" } ] }
Druk op Ctrl+X om de editor af te sluiten en voer y in om uw wijzigingen op te slaan.
Als u de agent wilt instellen voor uitvoering als een simulator, voert u de volgende opdracht uit op het IoT-apparaat. De Device Update-agent roept de simulatorhandler aan om updates te verwerken die gebruikmaken van de Microsoft SWUpdate-extensie.
sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
De simulatorbestanden ophalen
Download en pak het Tutorial_Simulator.zip archief uit de meest recente releaseassets van GitHub Device Update Releases naar uw Ubuntu 18.04-computer.
U kunt het ZIP-bestand downloaden
wget
. Vervang bijvoorbeeld door<release_version>
de nieuwste versie1.0.0
.wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
Kopieer het sample-du-simulator-data.json bestand uit de uitgepakte Tutorial_Simulator map naar de tmp-map .
cp sample-du-simulator-data.json /tmp/du-simulator-data.json
Notitie
Als de map tmp niet bestaat, maakt u deze als volgt:
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Wijzig de machtigingen voor het bestand /tmp/sample-du-simulator-data.json .
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Start de Device Update-agent opnieuw om uw wijzigingen toe te passen.
sudo systemctl restart deviceupdate-agent
De update importeren
Download en pak het Tutorial_Simulator.zip archief uit de meest recente releaseassets van GitHub Device Update Releases uit op uw ontwikkelcomputer, als deze verschilt van uw Ubuntu 18.04 IoT-apparaat. In deze sectie worden de bestanden TutorialImportManifest_Sim.importmanifest.json en adu-update-image-raspberrypi3.swu uit de map Tutorial_Simulator gebruikt.
Het updatebestand is hetzelfde als in de Raspberry Pi-zelfstudie. Omdat de update in deze zelfstudie wordt gesimuleerd, maakt de specifieke bestandsinhoud niet uit.
Meld u op uw ontwikkelcomputer aan bij Azure Portal en ga naar de IoT-hub die is geconfigureerd met uw Device Update-exemplaar.
Selecteer Apparaatbeheer> Updates in het navigatiedeelvenster.
Selecteer Een nieuwe update importeren op de pagina Updates.
Selecteer Selecteren in opslagcontainer op de pagina Update importeren.
Selecteer een bestaand opslagaccount of maak een nieuw account door Opslagaccount te selecteren.
Selecteer een bestaande container of maak een nieuwe container door Container te selecteren. Deze container wordt gebruikt voor het faseren van de updatebestanden voor het importeren.
Notitie
Als u wilt voorkomen dat bestanden uit eerdere updates per ongeluk worden geïmporteerd, gebruikt u telkens wanneer u een update importeert een nieuwe container. Als u geen nieuwe container gebruikt, moet u alle bestanden uit de bestaande container verwijderen.
Selecteer Uploaden op de containerpagina. Blader naar de bestanden TutorialImportManifest_Sim.importmanifest.json en adu-update-image-raspberrypi3.swu en selecteer vervolgens Uploaden.
Schakel de selectievakjes in voor beide bestanden en selecteer vervolgens Selecteren om terug te keren naar de pagina Update importeren .
Controleer op de pagina Update importeren de bestanden die moeten worden geïmporteerd en selecteer vervolgens Update importeren.
Het importproces wordt gestart en u kunt importgeschiedenis weergeven selecteren om de importgeschiedenis en -status weer te geven. Op de pagina Updategeschiedenis wordt in het veld Status geslaagd weergegeven wanneer het importeren is voltooid. U kunt Vernieuwen selecteren om de status bij te werken.
De geïmporteerde update wordt nu weergegeven op de pagina Updates .
Zie Een update importeren naar Device Update voor IoT Hub voor meer informatie over het importproces.
Selecteer de apparaatgroep
U kunt de groepstag gebruiken die u op uw apparaat hebt toegepast om de update te implementeren in de apparaatgroep. Selecteer het tabblad Groepen en implementaties boven aan de pagina Updates om de lijst met groepen en implementaties en het updatenalevingsdiagram weer te geven.
In het diagram voor updatecompatibiliteit ziet u het aantal apparaten in verschillende nalevingsstatussen: Bij de meest recente update, nieuwe updates die beschikbaar zijn en updates die worden uitgevoerd. Zie Apparaatupdate-naleving voor meer informatie.
Onder Groepsnaam ziet u een lijst met alle apparaatgroepen voor apparaten die zijn verbonden met deze IoT-hub en de beschikbare updates, met koppelingen voor het implementeren van de updates onder Status. Apparaten die niet voldoen aan de apparaatklassevereisten van een groep, worden weergegeven in een overeenkomstige ongeldige groep. Zie Apparaatgroepen beheren voor meer informatie over tags en groepen.
U ziet nu de apparaatgroep die het gesimuleerde apparaat bevat dat u in deze zelfstudie hebt ingesteld. Selecteer de groepsnaam om de details ervan weer te geven.
De update implementeren
Op de pagina Groepsdetails ziet u een nieuwe update die beschikbaar is voor deze groep. Selecteer Implementeren om de implementatie te starten.
De update die u hebt 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.
Navigeer naar het tabblad Huidige updates. Onder Implementatiedetails wordt de status geactiveerd.
Nadat het apparaat is bijgewerkt, gaat u terug naar de pagina Updates . U ziet dat uw nalevingsgrafiek en implementatiegegevens zijn bijgewerkt om de geïnstalleerde update op te nemen.
Update-implementatiegeschiedenis weergeven
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.
Resources opschonen
Als u doorgaat met de volgende zelfstudie, houdt u de Resources voor Apparaatupdate en IoT Hub bij. Wanneer u de resources die u voor deze zelfstudie hebt gemaakt niet meer nodig hebt, kunt u ze verwijderen.
- Navigeer in Azure Portal naar de resourcegroep die de resources bevat.
- Als u alle resources in de groep wilt verwijderen, selecteert u Resourcegroep verwijderen.
- Als u slechts een deel van de resources wilt verwijderen, gebruikt u de selectievakjes om de resources te selecteren en selecteert u Vervolgens Verwijderen.