Delen via


Zelfstudie: Apparaatupdate voor Azure IoT Hub met behulp van de Raspberry Pi 3 B+-referentieafbeelding

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 gemakkelijker om de resultaten van een installatiekopie-update te repliceren tussen een preproductieomgeving en een productieomgeving, omdat deze niet dezelfde uitdagingen vormt als pakketten en hun afhankelijkheden. Vanwege hun atomische aard kunt u ook eenvoudig een A/B-failovermodel gebruiken.

In deze zelfstudie wordt u begeleid bij de stappen voor het voltooien van een end-to-end update op basis van afbeeldingen met behulp van Device Update voor IoT Hub op een Raspberry Pi 3 B+-bord.

In deze zelfstudie leert u het volgende:

  • Een afbeelding downloaden.
  • Voeg een tag toe aan uw IoT-apparaat.
  • Een update importeren.
  • Maak een apparaatgroep.
  • Een installatiekopieënupdate implementeren.
  • Bewaak de update-implementatie.

Notitie

Afbeeldingsupdates in deze zelfstudie zijn gevalideerd op het Raspberry Pi B3-bord.

Vereisten

Als u dit nog niet hebt gedaan, maakt u een Device Update-account en -exemplaar en configureert u een IoT-hub.

De afbeelding downloaden

We bieden voorbeeldafbeeldingen in Assets op de pagina GitHub-releases voor apparaatupdates. Het .gz-bestand is de basisafbeelding die u kunt flashen op een Raspberry Pi 3 B+ bord. Het swUpdate-bestand is de update die u importeert via Device Update voor IoT Hub.

Een SD-kaart flashen met de afbeelding

Gebruik uw favoriete hulpprogramma voor flashing van het besturingssysteem om de Device Update-basisinstallatiekopieën (adu-base-image) te installeren op de SD-kaart die wordt gebruikt in het Raspberry Pi 3 B+-apparaat.

Gebruik bmaptool om de SD-kaart te flashen

  1. Installeer het bmaptool hulpprogramma als u dit nog niet hebt gedaan.

    sudo apt-get install bmap-tools
    
  2. Zoek het pad voor de SD-kaart in /dev. Het pad moet er ongeveer uitzien als /dev/sd* of /dev/mmcblk*. U kunt het dmesg hulpprogramma gebruiken om het juiste pad te vinden.

  3. Ontkoppel alle gekoppelde partities voordat u knippert.

    sudo umount /dev/<device>
    
  4. Zorg ervoor dat u schrijfmachtigingen voor het apparaat hebt.

    sudo chmod a+rw /dev/<device>
    
  5. Optioneel: download het bimap-bestand en het afbeeldingsbestand en plaats deze in dezelfde map om sneller te knipperen.

  6. Flash de SD-kaart.

    sudo bmaptool copy <path to image> /dev/<device>
    

Device Update for Azure IoT Hub software is onderworpen aan de volgende licentievoorwaarden:

Lees de licentievoorwaarden voordat u de agent gebruikt. Door uw installatie en gebruik gaat u akkoord met deze voorwaarden. Als u niet akkoord gaat met de licentievoorwaarden, gebruikt u de Device Update voor IoT Hub agent niet.

Een apparaat of module maken in IoT Hub en een connection string

Voeg nu het apparaat toe aan IoT Hub. Vanuit IoT Hub wordt een connection string voor het apparaat gegenereerd.

  1. Start IoT Hub vanuit de Azure Portal.

  2. Maak een nieuw apparaat.

  3. Selecteer Apparaten in het linkerdeelvenster. Selecteer vervolgens Nieuw.

  4. Voer onder Apparaat-id een naam in voor het apparaat. Zorg ervoor dat het selectievakje Automatisch genereren van sleutels is ingeschakeld.

  5. Selecteer Opslaan. Op de pagina Apparaten moet het apparaat dat u hebt gemaakt, in de lijst staan.

  6. Haal de connection string van het apparaat op met behulp van een van de volgende twee opties:

    • Optie 1: De Device Update-agent gebruiken met een module-id: selecteer bovenaan op dezelfde pagina Apparaten de optie Module-identiteit toevoegen . Maak een nieuwe Device Update-module met de naam IoTHubDeviceUpdate. Kies andere opties die van toepassing zijn op uw use-case en selecteer vervolgens Opslaan. Selecteer de zojuist gemaakte module. Selecteer in de moduleweergave het pictogram Kopiëren naast Primaire verbindingsreeks.
    • Optie 2: De Device Update-agent gebruiken met de apparaat-id: selecteer in de apparaatweergave het pictogram Kopiëren naast Primaire verbindingsreeks.
  7. Plak de gekopieerde tekens ergens voor later gebruik in de volgende stappen:

    Deze gekopieerde tekenreeks is uw apparaat connection string.

Configuraties op apparaten voorbereiden voor Apparaatupdate voor IoT Hub

Er moeten twee configuratiebestanden op het apparaat staan, zodat Device Update voor IoT Hub correct wordt geconfigureerd. Het eerste bestand is het du-config.json bestand, dat moet bestaan op /adu/du-config.json. Het tweede bestand is het du-diagnostics-config.json bestand, dat moet bestaan op /adu/du-diagnostics-config.json.

Hier volgen twee voorbeelden voor de du-config.json bestanden en du-diagnostics-config.json :

Voorbeeld du-config.json

   {
      "schemaVersion": "1.0",
      "aduShellTrustedUsers": [
         "adu",
         "do"
      ],
      "manufacturer": "fabrikam",
      "model": "vacuum",
      "agents": [
         {
         "name": "main",
         "runas": "adu",
         "connectionSource": {
            "connectionType": "string",
            "connectionData": "HostName=example-connection-string.azure-devices.net;DeviceId=example-device;SharedAccessKey=M5oK/rOP12aB5678YMWv5vFWHFGJFwE8YU6u0uTnrmU="
         },
         "manufacturer": "fabrikam",
         "model": "vacuum"
         }
      ]
   }  

Voorbeeld du-diagnostics-config.json

   {
      "logComponents":[
         {
               "componentName":"adu",
               "logPath":"/adu/logs/"
         },
         {
               "componentName":"do",
               "logPath":"/var/log/deliveryoptimization-agent/"
         }
      ],
      "maxKilobytesToUploadPerLogPath":50
   }

De Device Update-agent configureren op Raspberry Pi

  1. Zorg ervoor dat Raspberry Pi 3 is verbonden met het netwerk.

  2. Volg deze instructies om de configuratiegegevens toe te voegen:

    1. Voer eerst SSH in op de computer met behulp van de volgende opdracht in het PowerShell-venster:

         ssh raspberrypi3 -l root
      
    2. Maak of open het bestand om het du-config.json te bewerken met behulp van:

         nano /adu/du-config.json
      
    3. Nadat u de opdracht hebt uitgevoerd, ziet u een geopende editor met het bestand. Als u het bestand nog nooit hebt gemaakt, is het leeg. Kopieer nu de inhoud van het voorgaande voorbeeld du-config.json en vervang de configuraties die vereist zijn voor uw apparaat. Vervang vervolgens het voorbeeld connection string door het voorbeeld voor het apparaat dat u in de voorgaande stappen hebt gemaakt.

    4. Nadat u de wijzigingen hebt voltooid, selecteert u Ctrl+X om de editor af te sluiten. Voer vervolgens y in om de wijzigingen op te slaan.

    5. Nu moet u het du-diagnostics-config.json bestand maken met behulp van vergelijkbare opdrachten. Begin met het maken of openen van het bestand om het du-diagnostics-config.json te bewerken met behulp van:

         nano /adu/du-diagnostics-config.json
      
    6. Kopieer de inhoud van het voorgaande voorbeeld du-diagnostics-config.json en vervang configuraties die afwijken van de standaardbuild. Het voorbeeldbestand du-diagnostics-config.json vertegenwoordigt de standaardlogboeklocaties voor Device Update voor IoT Hub. U hoeft deze alleen te wijzigen als uw implementatie verschilt.

    7. Nadat u de wijzigingen hebt voltooid, selecteert u Ctrl+X om de editor af te sluiten. Voer vervolgens y in om de wijzigingen op te slaan.

    8. Gebruik de volgende opdracht om de bestanden in de /adu/ map weer te geven. U ziet nu beide configuratiebestanden.du-diagnostics-config.json-bestanden om te bewerken met behulp van:

         ls -la /adu/
      
  3. Start de systeemdemon Device Update opnieuw op om ervoor te zorgen dat de configuraties zijn toegepast. Gebruik de volgende opdracht in de terminal die is aangemeld bij de raspberrypi:

       systemctl start adu-agent
    
  4. Controleer met behulp van de volgende opdracht of de agent live is:

       systemctl status adu-agent
    

    U ziet dat de status terugkomt als levend en groen.

Het apparaat verbinden in Apparaatupdate voor IoT Hub

  1. Selecteer Apparaten in het linkerdeelvenster.

  2. Selecteer de koppeling met de naam van uw apparaat.

  3. Selecteer bovenaan de pagina Apparaatdubbel als u rechtstreeks verbinding maakt met Device Update met behulp van de IoT-apparaat-id. Selecteer anders de module die u hebt gemaakt en selecteer de bijbehorende moduledubbel.

  4. Zoek in de gerapporteerde sectie van de apparaatdubbeleigenschappen naar de Linux-kernelversie. Voor een nieuw apparaat, dat geen update van Device Update heeft ontvangen, vertegenwoordigt de waarde DeviceManagement:DeviceInformation:1.swVersion de firmwareversie die op het apparaat wordt uitgevoerd. Nadat een update is toegepast op een apparaat, gebruikt Device Update de eigenschapswaarde AzureDeviceUpdateCore:ClientMetadata:4.installedUpdateId om de firmwareversie aan te geven die op het apparaat wordt uitgevoerd.

  5. De basis- en updateinstallatiekopieën hebben een versienummer in de bestandsnaam.

    adu-<image type>-image-<machine>-<version number>.<extension>
    

Gebruik dat versienummer in de latere sectie 'De update importeren'.

Een tag toevoegen aan uw apparaat

  1. Meld u aan bij de Azure Portal en ga naar de IoT-hub.

  2. Zoek in het linkerdeelvenster onder Apparaten uw IoT-apparaat en ga naar de apparaatdubbel of moduledubbel.

  3. Verwijder in de moduledubbel van de Device Update-agentmodule alle bestaande tagwaarden voor Device Update door deze in te stellen op null. Als u de apparaat-id gebruikt met de Device Update-agent, moet u deze wijzigingen aanbrengen op de apparaatdubbel.

  4. Voeg een nieuwe tagwaarde voor Device Update toe, zoals wordt weergegeven:

        "tags": {
                "ADUGroup": "<CustomTagValue>"
                }
    

De update importeren

  1. Download het manifest voor de voorbeeldzelfstudie (Zelfstudie importeren Manifest_Pi.json) en de voorbeeldupdate (adu-update-image-raspberrypi3-0.6.5073.1.swu) van Release Assets voor de nieuwste agent.

  2. Meld u aan bij de Azure Portal en ga naar uw IoT-hub met Device Update. Selecteer in het linkerdeelvenster onder Automatische Apparaatbeheerde optie Updates.

  3. Selecteer het tabblad Updates.

  4. Selecteer + Nieuwe update importeren.

  5. Selecteer + Selecteren in opslagcontainer. Selecteer een bestaand account of maak een nieuw account met behulp van + Opslagaccount. Selecteer vervolgens een bestaande container of maak een nieuwe container met behulp van + Container. 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.

    Schermopname van Opslagaccounts en Containers.

  6. Selecteer uploaden in de container en ga naar de bestanden die u in stap 1 hebt gedownload. Nadat u al uw updatebestanden hebt geselecteerd, selecteert u Uploaden. Selecteer vervolgens de knop Selecteren om terug te keren naar de pagina Update importeren .

    Schermopname van het selecteren van geüploade bestanden.

    In deze schermopname ziet u de importstap. Bestandsnamen komen mogelijk niet overeen met de namen die in het voorbeeld worden gebruikt.

  7. Controleer op de pagina Update importeren de bestanden die moeten worden geïmporteerd. Selecteer vervolgens Update importeren om het importproces te starten.

    Schermopname van Import update.

  8. Het importproces wordt gestart en het scherm schakelt over naar de sectie Importgeschiedenis . Wanneer de kolom Status aangeeft dat het importeren is voltooid, selecteert u de kop Beschikbare updates . De geïmporteerde update wordt nu in de lijst weergegeven.

    Schermopname van de taakstatus.

Meer informatie over het importeren van updates.

Een updategroep maken

  1. Ga naar het tabblad Groepen en implementaties boven aan de pagina.

    Schermopname van niet-gegroepeerde apparaten.

  2. Selecteer Groep toevoegen om een nieuwe groep te maken.

    Schermopname van het toevoegen van apparaatgroepen.

  3. Selecteer een IoT Hub tag en Apparaatklasse in de lijst. Selecteer vervolgens Groep maken.

    Schermopname van de tagselectie.

  4. Nadat de groep is gemaakt, worden het updatenalevingsdiagram en de lijst met groepen bijgewerkt. In de grafiek voor updatenaleving ziet u het aantal apparaten in verschillende nalevingsstatussen: Bij de meest recente update, Nieuwe updates beschikbaar en Updates wordt uitgevoerd. Meer informatie over updatecompatibiliteit.

    Schermopname van de weergave voor updatenaleving.

  5. U ziet nu de zojuist gemaakte groep en 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. Als u de beste beschikbare update wilt implementeren voor de nieuwe door de gebruiker gedefinieerde groep vanuit deze weergave, selecteert u Implementeren naast de groep.

Meer informatie over het toevoegen van tags en het maken van updategroepen.

De update implementeren

  1. Nadat de groep is gemaakt, ziet u een nieuwe update beschikbaar voor uw apparaatgroep. Een koppeling naar de update moet onder Beste update staan. Mogelijk moet u eenmaal vernieuwen. Meer informatie over updatecompatibiliteit.

  2. Selecteer de doelgroep door de groepsnaam te selecteren. U wordt omgeleid naar de groepsdetails onder Basisbeginselen van groep.

    Schermopname van groepsdetails.

  3. Ga naar het tabblad Huidige implementatie om de implementatie te starten. Selecteer de koppeling implementeren naast de gewenste update in de sectie Beschikbare updates . De best beschikbare update voor een bepaalde groep wordt aangeduid met een beste markering.

    Schermopname van het selecteren van een update.

  4. Plan uw implementatie om onmiddellijk of in de toekomst te starten. Selecteer vervolgens Maken.

    Schermopname van de knop Maken.

  5. Onder Implementatiedetails wordt de status ingesteld op Actief. De geïmplementeerde update is gemarkeerd met (implementeren).

    Schermopname van Implementatie actief.

  6. Bekijk de nalevingsgrafiek om te zien dat de update nu wordt uitgevoerd.

  7. Nadat uw apparaat is bijgewerkt, ziet u dat uw nalevingsgrafiek en implementatiegegevens zijn bijgewerkt om hetzelfde weer te geven.

    Schermopname van Bijwerken voltooid.

De update-implementatie bewaken

  1. Selecteer het tabblad Implementatiegeschiedenis bovenaan de pagina.

    Schermopname van de implementatiegeschiedenis.

  2. Selecteer Details naast de implementatie die u hebt gemaakt.

    Schermopname van implementatiedetails.

  3. Selecteer Vernieuwen om de meest recente statusdetails weer te geven.

U hebt nu een geslaagde end-to-end-update van installatiekopieën voltooid met behulp van Device Update voor IoT Hub op een Raspberry Pi 3 B+-apparaat.

Resources opschonen

Schoon uw Device Update-account, exemplaar, IoT-hub en IoT-apparaat op wanneer u deze niet meer nodig hebt.

Volgende stappen