Etablera Azure Device Update för IoT Hub-agenten

Enhetsuppdateringsmodulagenten kan köras tillsammans med andra systemprocesser och IoT Edge-moduler som ansluter till din IoT Hub som en del av samma logiska enhet. Den här artikeln beskriver hur du etablerar enhetsuppdateringsagenten som en modulidentitet.

Kommentar

Använd den senaste 1.x-versionen av referensimplementeringen för enhetsuppdateringsagenten för att dra nytta av de senaste förbättringarna. Kontrollera den installerade versionen i egenskapsavsnittet för din IoT-enhetstvilling. Mer information finns i Enhetsuppdatering för IoT Hub plattformar som stöds.

Modulidentitet och enhetsidentitet

Du kan skapa upp till 50 modulidentiteter under varje Azure IoT Hub-enhetsidentitet. Varje modulidentitet genererar implicit en modulidentitetstvilling. På enhetssidan kan du använda IoT Hub-enhets-SDK:er för att skapa moduler som var och en öppnar en oberoende anslutning till IoT Hub.

Modulidentitet och modultvilling erbjuder liknande funktioner som enhetsidentitet och enhetstvilling, men på en mer detaljerad nivå. Mer information finns i Förstå och använda modultvillingar i IoT Hub.

När du etablerar enhetsuppdateringsagenten som en modulidentitet måste all kommunikation mellan enheten och enhetsuppdateringstjänsten ske via modultvillingen. Kom ihåg att tagga enhetens modultvilling när du skapar enhetsgrupper. Om du migrerar från en agent på enhetsnivå till att lägga till agenten som en modulidentitet tar du bort den äldre agenten som kommunicerade via enhetstvillingen.

Uppdateringstyper som stöds

Device Update har stöd för följande typer av trådlösa uppdateringar för IoT-enheter:

Förbereda för paketuppdateringar

Om du vill konfigurera en IoT-enhet eller IoT Edge-enhet för att installera paketbaserade uppdateringar lägger du till packages.microsoft.com i datorns lagringsplatser genom att följa dessa steg:

  1. Öppna ett terminalfönster på datorn eller IoT-enheten där du vill installera enhetsuppdateringsagenten.

  2. Installera lagringsplatsens konfiguration som matchar enhetens operativsystem, till exempel:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. Kopiera den genererade listan till katalogen sources.list.d .

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. Installera den offentliga Microsoft GPG-nyckeln.

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

Konfigurera enhetsuppdateringsagenten

Du kan etablera enhetsuppdateringsagenten som en modulidentitet på IoT Edge-aktiverade enheter eller IoT Edge-enheter som inte är IoT Edge-enheter. Information om hur du kontrollerar om IoT Edge är aktiverat på enheten finns i Visa registrerade enheter och hämta etableringsinformation.

Du kan ladda ned exempelbilder som ska användas från avsnittet Tillgångar på sidan Versioner . I Tutorial_RaspberryPi3.zip är swUpdate-filen basavbildningen som du kan flasha på en Raspberry Pi B3+-tavla. Den .gz filen är den uppdatering som du kan importera via Enhetsuppdatering. Mer information finns i artikeln Azure Device Update for IoT Hub med en Raspberry Pi-avbild.

På IoT Edge-aktiverade enheter

Följ de här anvisningarna för att etablera enhetsuppdateringsagenten på IoT Edge-aktiverade enheter:

  1. Följ anvisningarna i Etablera en enskild Linux IoT Edge-enhet manuellt.

  2. Installera avbildningsuppdateringsagenten för enhetsuppdatering genom att köra följande kommando:

    sudo apt-get install deviceupdate-agent
    
  3. Installera uppdateringsagenten för enhetsuppdateringspaketet.

    • För de senaste agentversionerna från packages.microsoft.com uppdaterar du paketlistor på enheten och installerar enhetsuppdateringsagentpaketet och dess beroenden med hjälp av:

      sudo apt-get update
      
      sudo apt-get install deviceupdate-agent
      
    • För agentversioner av typen release candidate (rc) laddar du ned .deb-filen från Releases till den maskin där du vill installera Device Update-agenten och kör sedan följande kommando:

      sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
      
    • Om du konfigurerar en Microsoft Connected Cache (MCC) för ett frånkopplat enhetsscenario installerar du plugin-programmet Leveransoptimering APT enligt följande:

      sudo apt-get install deliveryoptimization-plugin-apt
      

På enheter som inte är IoT Edge-aktiverade

Följ de här anvisningarna för att etablera enhetsuppdateringsagenten på Linux IoT-enheter utan IoT Edge installerat. Du kan etablera agenten med hjälp av Azure IoT Identity Service (AIS) eller genom att konfigurera autentiseringsuppgifter direkt på enheten.

Använda Azure IoT Identity Service (AIS)

  1. Installera den senaste versionen av IoT Identity Service genom att följa anvisningarna i Installera Azure IoT Identity Service.

  2. Konfigurera IoT Identity Service genom att följa anvisningarna i Konfigurera Azure IoT Identity Service. Kontrollera att tjänsten har konfigurerats med rätt enhets- eller modulidentitet så att den kan tillhandahålla anslutningsinformation till enhetsuppdateringsagenten.

  3. Installera enhetsuppdateringsagenten genom att köra följande kommando:

    sudo apt-get install deviceupdate-agent
    

Kommentar

Om din IoT-enhet inte kan köra IoT Identity Service eller IoT Edge, som paketerar IoT Identity Service, kan du fortfarande installera enhetsuppdateringsagenten och konfigurera den med använda en reťazec pripojenia eller x.509-certifikat.

Använd en anslutningssträng

För testning eller på begränsade enheter kan du konfigurera enhetsuppdateringsagenten utan att använda IoT Identity-tjänsten. Du kan använda en anslutningssträng för att etablera enhetsuppdateringsagenten från modulen eller enheten.

  1. I Azure Portal kopierar du den primära anslutningssträng. Om enhetsuppdateringsagenten har konfigurerats som en modulidentitet kopierar du modulens primära anslutningssträng. Annars kopierar du enhetens primära anslutningssträng.

  2. I ett terminalfönster på datorn eller IoT-enheten där du installerade enhetsuppdateringsagenten redigerar du konfigurationsfilen För enhetsuppdatering genom att köra följande kommando:

  3. I filen du-config.json anger du alla värden som har en Place value here platshållare och anger den kopierade primära anslutningssträng som connectionData fältvärde. Ett exempel finns i Exempel på filinnehållet "du-config.json".

Använda X.509-certifikat

Enhetsuppdateringsagenten version 1.3.0 och senare stöder autentisering till IoT Hub med X.509-certifikat. Azure IoT Hub stöder två X.509-certifikatkonfigurationsmetoder:

  • CA-signerade certifikat (rekommenderas): Enheter autentiserar med hjälp av ett certifikat som utfärdats av en betrodd certifikatutfärdare (CA).
  • Självsignerade certifikat (baserade på tumavtryck): Varje enhetsidentitet konfigureras med ett certifikats tumavtryck som IoT Hub validerar vid autentisering.

Konfigurera X.509-autentisering

Registrera din enhetsidentitet i IoT Hub med X.509-autentisering aktiverat.

  1. Konfigurera enheten med antingen:
    • Ett certifikat som utfärdats av en betrodd certifikatutfärdare (CA).
    • Ett självsignerat certifikat med ett registrerat tumavtryck.
  2. Installera enhetsuppdateringsagenten på enheten.

Device Provisioning Service (DPS) kan användas för att etablera enhetsidentiteter och certifikat. DPS etablerar dock inte modulidentiteter. Konfigurationen av enhetsuppdateringsagenten måste fortfarande vara klar på enheten.

Stegvisa konfigurationsinstruktioner, inklusive avancerade scenarier som maskinvarubaserade nycklar (till exempel maskinvarusäkerhetsmoduler (HSM) eller PKCS#11-baserad nyckellagring för säker nyckelhantering), finns i autentiseringsguiden för X.509: How to Use X.509 Client Certificate Authentication.

Kommentar

X.509-autentiseringsstöd i enhetsuppdateringsagenten använder standardkonfiguration för Azure IoT Hub identitet. Den här funktionen är inte integrerad med Azure ADR-certifikathantering (förhandsversion).

Konfigurera enhetsuppdateringsagenten

När du har installerat enhetsuppdateringsagenten redigerar du konfigurationsfilen för enhetsuppdatering genom att köra följande kommando.

sudo nano /etc/adu/du-config.json

I filen du-config.json anger du alla värden som har en Place value here platshållare.

Azure IoT Identity Service (AIS)

  • "connectionType": "AIS"
  • "connectionData": "" (tom sträng)

Kommentar

När du använder Azure IoT Identity Service (AIS) måste tjänsten konfigureras för att tillhandahålla rätt identitet till enhetsuppdateringsagenten. Detta omfattar att konfigurera identiteter i config.toml och se till att agenten är associerad med rätt enhets- eller modulidentitet. Om enhetsuppdateringsagenten körs som en modul måste en motsvarande modulidentitet konfigureras så att AIS kan returnera modulens anslutningsinformation till agenten. Konfigurationsinformation finns i Konfigurera Azure IoT Identity Service.

Anslutningssträng

  • "connectionType": "string"
  • "connectionData": "HostName=<hub>.azure-devices.net;DeviceId=<device>;SharedAccessKey=<key>" (ersätt med ditt IoT Hub värdnamn, enhets-ID och delad åtkomstnyckel)

X.509-certifikat

  • "connectionType": "x509"
  • "connectionData": "HostName=<hub>.azure-devices.net;DeviceId=<device>;x509=true" (ersätt med ditt IoT Hub värdnamn och enhets-ID)
  • "connectionX509CertFilePath": "/etc/adu/certs/client.pem"
  • "connectionX509PrivateKeyFilePath": "/etc/adu/certs/client.key"
  • "connectionX509CaCertFilePath": "/etc/adu/certs/ca.pem"

Fullständig konfigurationsinformation finns i konfigurationsguiden för Azure Device Update Agent.

Mer information finns i: Konfigurationsfil för enhetsuppdatering. Ett exempel finns i Exempel på filinnehållet "du-config.json".

Starta enhetsuppdateringsagenten

Starta enhetsuppdateringsagenten och kontrollera att den körs på enheten.

  1. Starta om agenten genom att köra följande kommando i ett terminalfönster på den dator eller IoT-enhet där du installerade enhetsuppdateringsagenten:

    sudo systemctl restart deviceupdate-agent
    
  2. Kontrollera agentstatusen genom att köra följande kommando.

    sudo systemctl status deviceupdate-agent
    

    Du bör se status OK.

  3. På sidan IoT Hub-portalen går du till Enheter eller IoT Edge för att hitta den enhet som du har konfigurerat och ser enhetsuppdateringsagenten som körs som en modul. Till exempel:

    Diagram över enhetsuppdateringsmodulens namn som visar Ansluten status.

Aktivera enhetsuppdateringsagenten bakom en proxyserver

Enheter som kör enhetsuppdateringsagenten skickar HTTPS-begäranden för att kommunicera med IoT Hub. Om du har anslutit enheten till ett nätverk som använder en proxyserver måste du konfigurera systembaserad tjänst för enhetsuppdatering så att den kommunicerar via servern.

Innan du konfigurerar Enhetsuppdatering kontrollerar du att du har proxy-URL:en. Proxy-URL är i formatet protocol://proxy_host:proxy_port.

Skapa en systemad åsidosättningskonfigurationskatalog och åsidosättningsfilen genom att köra följande kommando:

sudo mkdir -p /etc/systemd/system/deviceupdate-agent.service.d
sudo nano /etc/systemd/system/deviceupdate-agent.service.d/override.conf

Lägg till proxyinformationen i konfigurationen

[Service]
Environment="HTTP_PROXY=http://your.proxy.server:port"
Environment="HTTPS_PROXY=http://your.proxy.server:port"

Starta om agenten för att tillämpa ändringarna:

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent

Du kan sedan kontrollera att miljövariablerna tillämpas med hjälp av

sudo systemctl show deviceupdate-agent | grep -i proxy

Skapa och köra en enhetsuppdateringsagent

Du kan också skapa och ändra din egen anpassade enhetsuppdateringsagent. Följ anvisningarna i Skapa enhetsuppdateringsagenten för att skapa enhetsuppdateringsagenten från källan.

När agenten har skapats följer du Köra enhetsuppdateringen för IoT Hub-referensagenten för att köra agenten. Om du vill göra ändringar som krävs för att införliva agenten i din avbildning följer du Så här ändrar du koden för enhetsuppdateringsagenten.

Felsökning

Om du stöter på problem kan du läsa felsökningsguiden för enhetsuppdatering för IoT Hub för att lösa problemen och samla in nödvändig information som ska tillhandahållas Till Microsoft.