Skapa och etablera en IoT Edge-enhet i Linux med symmetriska nycklar

Gäller för:IoT Edge 1.4 checkmark IoT Edge 1.4

Viktigt!

IoT Edge 1.4 är den version som stöds. Om du har en tidigare version läser du Uppdatera IoT Edge.

Den här artikeln innehåller instruktioner från slutpunkt till slutpunkt för registrering och etablering av en Linux IoT Edge-enhet som omfattar installation av IoT Edge.

Varje enhet som ansluter till en IoT-hubb har ett enhets-ID som används för att spåra kommunikation från moln till enhet eller från enhet till moln . Du konfigurerar en enhet med dess anslutningsinformation, som omfattar:

  • Värdnamn för IoT Hub
  • Enhets-ID
  • Autentiseringsinformation för att ansluta till IoT Hub

Stegen i den här artikeln går igenom en process som kallas manuell etablering, där du ansluter en enda enhet till dess IoT-hubb. För manuell etablering har du två alternativ för att autentisera IoT Edge-enheter:

  • Symmetriska nycklar: När du skapar en ny enhetsidentitet i IoT Hub skapar tjänsten två nycklar. Du placerar en av nycklarna på enheten och den visar nyckeln till IoT Hub när du autentiserar.

    Den här autentiseringsmetoden går snabbare att komma igång, men inte lika säker.

  • X.509 självsignerade: Du skapar två X.509-identitetscertifikat och placerar dem på enheten. När du skapar en ny enhetsidentitet i IoT Hub anger du tumavtryck från båda certifikaten. När enheten autentiseras till IoT Hub visas ett certifikat och IoT Hub verifierar att certifikatet matchar tumavtrycket.

    Den här autentiseringsmetoden är säkrare och rekommenderas för produktionsscenarier.

Den här artikeln beskriver hur du använder symmetriska nycklar som autentiseringsmetod. Om du vill använda X.509-certifikat kan du läsa Skapa och etablera en IoT Edge-enhet i Linux med X.509-certifikat.

Kommentar

Om du har många enheter att konfigurera och inte vill etablera var och en manuellt använder du någon av följande artiklar för att lära dig hur IoT Edge fungerar med IoT Hub-enhetsetableringstjänsten:

Förutsättningar

Den här artikeln visar hur du registrerar din IoT Edge-enhet och installerar IoT Edge (kallas även IoT Edge-körning) på enheten. Kontrollera att du har valfritt verktyg för enhetshantering, till exempel Azure CLI och enhetskrav innan du registrerar och installerar enheten.

Verktyg för enhetshantering

Du kan använda Azure-portalen, Visual Studio Code eller Azure CLI för stegen för att registrera din enhet. Varje verktyg har sina egna förutsättningar eller kan behöva installeras:

En kostnadsfri eller standard-IoT-hubb i din Azure-prenumeration.

Enhetskrav

En X64-, ARM32- eller ARM64 Linux-enhet.

Microsoft publicerar installationspaket för en mängd olika operativsystem.

Den senaste informationen om vilka operativsystem som för närvarande stöds för produktionsscenarier finns i System som stöds av Azure IoT Edge.

Visual Studio Code-tillägg

Om du använder Visual Studio Code finns det användbara Azure IoT-tillägg som gör det enklare att skapa och hantera enheter.

Installera både Azure IoT Edge- och Azure IoT Hub-tilläggen:

Registrera din enhet

Du kan använda Azure-portalen, Visual Studio Code eller Azure CLI för att registrera din enhet, beroende på vad du föredrar.

I din IoT-hubb i Azure-portalen skapas och hanteras IoT Edge-enheter separat från IoT-enheter som inte är edge-aktiverade.

  1. Logga in på Azure-portalen och gå till din IoT-hubb.

  2. I den vänstra rutan väljer du Enheter på menyn och väljer sedan Lägg till enhet.

  3. På sidan Skapa en enhet anger du följande information:

    • Skapa ett beskrivande enhets-ID, till exempel my-edge-device-1 (alla gemener). Kopiera det här enhets-ID:t när du använder det senare.
    • Markera kryssrutan IoT Edge-enhet .
    • Välj Symmetrisk nyckel som autentiseringstyp.
    • Använd standardinställningarna för att generera autentiseringsnycklar automatiskt, som ansluter den nya enheten till din hubb.
  4. Välj Spara.

Du bör se din nya enhet i din IoT-hubb.

Nu när du har en enhet registrerad i IoT Hub kan du hämta etableringsinformation som används för att slutföra installationen och etableringen av IoT Edge-körningen i nästa steg.

Visa registrerade enheter och hämta etableringsinformation

Enheter som använder symmetrisk nyckelautentisering behöver sina anslutningssträng för att slutföra installationen och etableringen av IoT Edge-körningen. Anslutningssträng genereras för din IoT Edge-enhet när du skapar enheten. För Visual Studio Code och Azure CLI finns anslutningssträng i JSON-utdata. Om du använder Azure-portalen för att skapa din enhet kan du hitta anslutningssträng från själva enheten. När du väljer din enhet i din IoT-hubb visas den som Primary connection string på enhetssidan.

De gränsaktiverade enheter som ansluter till din IoT-hubb visas på sidan Enheter i din IoT-hubb. Om du har flera enheter kan du filtrera listan genom att välja typen Iot Edge-enheter och sedan välja Använd.

När du är redo att konfigurera enheten behöver du den anslutningssträng som länkar den fysiska enheten till dess identitet i IoT-hubben. Enheter som autentiserar med symmetriska nycklar har sina anslutningssträng tillgängliga att kopiera i portalen. Så här hittar du din anslutningssträng i portalen:

  1. På sidan Enheter väljer du IoT Edge-enhets-ID i listan.
  2. Kopiera värdet för antingen Primär Anslut ionssträng eller Sekundär Anslut ionssträng. Båda nycklarna fungerar.

Installera IoT Edge

I det här avsnittet förbereder du din virtuella Linux-dator eller fysiska enhet för IoT Edge. Sedan installerar du IoT Edge.

Kör följande kommandon för att lägga till paketlagringsplatsen och lägg sedan till Signeringsnyckeln för Microsoft-paketet i listan över betrodda nycklar.

Viktigt!

Den 30 juni 2022 drogs Raspberry Pi OS Stretch tillbaka från supportlistan för operativsystemet på nivå 1. För att undvika potentiella säkerhetsrisker uppdaterar du värdoperativsystemet till Bullseye.

Installationen kan utföras med några få kommandon. Öppna en terminal och kör följande kommandon:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Mer information om operativsystemversioner finns i Plattformar som stöds av Azure IoT Edge.

Kommentar

Azure IoT Edge-programvarupaket omfattas av licensvillkoren som finns i varje paket (usr/share/doc/{package-name} eller LICENSE katalogen). Läs licensvillkoren innan du använder ett paket. Din installation och användning av ett paket utgör ditt godkännande av dessa villkor. Om du inte godkänner licensvillkoren ska du inte använda det paketet.

Installera en containermotor

Azure IoT Edge förlitar sig på en OCI-kompatibel containerkörning. För produktionsscenarier rekommenderar vi att du använder Moby-motorn. Moby-motorn är den enda containermotorn som officiellt stöds med IoT Edge. Docker CE/EE-containeravbildningar är kompatibla med Moby-körningen.

Installera Moby-motorn.

sudo apt-get update; \
  sudo apt-get install moby-engine

Som standard anger containermotorn inte storleksbegränsningar för containerloggar. Med tiden kan detta leda till att enheten fylls med loggar och att diskutrymmet börjar ta slut. Du kan dock konfigurera loggen så att den visas lokalt, även om den är valfri. Mer information om loggningskonfiguration finns i Checklista för produktionsdistribution.

Följande steg visar hur du konfigurerar containern så att den använder local loggningsdrivrutinen som loggningsmekanism.

  1. Skapa eller redigera den befintliga Docker-daemonens konfigurationsfil

    sudo nano /etc/docker/daemon.json
    
  2. Ange loggningsdrivrutinen som standard till local loggningsdrivrutinen enligt exemplet.

       {
          "log-driver": "local"
       }
    
  3. Starta om containermotorn för att ändringarna ska börja gälla.

    sudo systemctl restart docker
    

Installera IoT Edge-körningen

IoT Edge-tjänsten tillhandahåller och upprätthåller säkerhetsstandarder på IoT Edge-enheten. Tjänsten startar vid varje start och startar enheten genom att starta resten av IoT Edge-körningen.

Kommentar

Från och med version 1.2 hanterar IoT-identitetstjänsten identitetsetablering och hantering för IoT Edge och för andra enhetskomponenter som behöver kommunicera med IoT Hub.

Stegen i det här avsnittet representerar den typiska processen för att installera den senaste IoT Edge-versionen på en enhet som har internetanslutning. Om du behöver installera en viss version, t.ex. en förhandsversion, eller om du behöver installera offline följer du installationsstegen offline eller specifik version senare i den här artikeln.

Dricks

Om du redan har en IoT Edge-enhet som kör en äldre version och vill uppgradera till den senaste versionen använder du stegen i Uppdatera IoT Edge-säkerhetsdaemonen och körningen. Senare versioner skiljer sig tillräckligt från tidigare versioner av IoT Edge för att specifika steg krävs för att uppgradera.

Installera den senaste versionen av IoT Edge och IoT-identitetstjänstpaketet (om du inte redan är uppdaterad):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Det valfria defender-iot-micro-agent-edge paketet innehåller Microsoft Defender för IoT-säkerhetsmikroagenten som ger slutpunktssynlighet i hantering av säkerhetsstatus, sårbarheter, hotidentifiering, hantering av flottan med mera för att hjälpa dig att skydda dina IoT Edge-enheter. Vi rekommenderar att du installerar mikroagenten med Edge-agenten för att aktivera säkerhetsövervakning och härdning av dina Edge-enheter. Mer information om Microsoft Defender för IoT finns i Vad är Microsoft Defender för IoT för enhetsbyggare?

Etablera enheten med dess molnidentitet

Nu när containermotorn och IoT Edge-körningen är installerade på enheten är du redo att konfigurera enheten med dess molnidentitet och autentiseringsinformation.

Du kan konfigurera din IoT Edge-enhet med symmetrisk nyckelautentisering med hjälp av följande kommando:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

Det här iotedge config mp kommandot skapar en konfigurationsfil på enheten och anger din anslutningssträng i konfigurationsfilen.

  1. Tillämpa konfigurationsändringarna.

    sudo iotedge config apply
    
  2. Om du vill visa konfigurationsfilen kan du öppna den:

    sudo nano /etc/aziot/config.toml
    

Distribuera moduler

Om du vill distribuera dina IoT Edge-moduler går du till din IoT-hubb i Azure-portalen och sedan:

  1. Välj Enheter på IoT Hub-menyn.

  2. Välj enheten för att öppna sidan.

  3. Välj fliken Ange moduler .

  4. Eftersom vi vill distribuera IoT Edge-standardmodulerna (edgeAgent och edgeHub) behöver vi inte lägga till några moduler i det här fönstret, så välj Granska + skapa längst ned.

  5. Du ser JSON-bekräftelsen för dina moduler. Välj Skapa för att distribuera modulerna.

Mer information finns i Distribuera en modul.

Kontrollera att konfigurationen har slutförts

Verifiera att körningen har installerats och konfigurerats korrekt på din IoT Edge-enhet.

Dricks

Förhöjd behörighet krävs för att köra iotedge-kommandon. När du loggar ut från datorn och sedan loggar in igen för första gången efter installationen av IoT Edge-körningen, så uppdateras dina behörigheter automatiskt. Tills dess använder du sudo framför kommandona.

  1. Kontrollera att IoT Edge-systemtjänsten körs.

    sudo iotedge system status
    

    Ett lyckat statussvar visar tjänsterna aziot som igång eller redo.

  2. Hämta tjänstloggar om du behöver felsöka tjänsten.

    sudo iotedge system logs
    
  3. Använd verktyget check för att verifiera enhetens konfigurations- och anslutningsstatus.

    sudo iotedge check
    

    Du kan förvänta dig ett antal svar som kan innehålla OK (grön), Varning (gul) eller Fel (röd). Felsökning av vanliga fel finns i Lösningar på vanliga problem för Azure IoT Edge.

    Screenshot of sample responses from the check command.

    Dricks

    Använd sudo alltid för att köra kontrollverktyget, även när dina behörigheter har uppdaterats. Verktyget behöver utökade privilegier för att få åtkomst till konfigurationsfilen för att verifiera konfigurationsstatusen.

    Kommentar

    På en nyligen etablerad enhet kan du se ett fel som rör IoT Edge Hub:

    × produktionsberedskap: Edge Hubs lagringskatalog finns kvar i värdfilsystemet – FelDet gick inte att kontrollera det aktuella tillståndet för edgeHub-containern

    Det här felet förväntas på en nyligen etablerad enhet eftersom IoT Edge Hub-modulen ännu inte körs. Se till att dina IoT Edge-moduler har distribuerats i föregående steg. Distributionen löser det här felet.

    Du kan också se en statuskod som 417 -- The device's deployment configuration is not set. När modulerna har distribuerats ändras den här statusen.

  4. När tjänsten startar för första gången bör du bara se edgeAgent-modulen köras. EdgeAgent-modulen körs som standard och hjälper till att installera och starta eventuella ytterligare moduler som du distribuerar till enheten.

    Kontrollera att enheten och modulerna distribueras och körs genom att visa enhetssidan i Azure-portalen.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

    När modulerna har distribuerats och körts listar du dem på din enhet eller virtuella dator med följande kommando:

    sudo iotedge list
    

Offlineinstallation eller specifik version (valfritt)

Stegen i det här avsnittet gäller scenarier som inte omfattas av standardinstallationsstegen. Detta kan omfatta:

  • Installera IoT Edge när du är offline
  • Installera en versionskandidatversion

Följ stegen i det här avsnittet om du vill installera en specifik version av Azure IoT Edge-körningen som inte är tillgänglig via pakethanteraren. Microsoft-paketlistan innehåller bara en begränsad uppsättning senaste versioner och deras underversioner, så de här stegen är till för alla som vill installera en äldre version eller en versionskandidatversion.

Om du använder Ubuntu-snappar kan du ladda ned en snap och installera den offline. Mer information finns i Ladda ned snaps och installera offline.

Med curl-kommandon kan du rikta in dig på komponentfilerna direkt från IoT Edge GitHub-lagringsplatsen.

Kommentar

Om enheten för närvarande kör IoT Edge version 1.1 eller äldre avinstallerar du paketen iotedge och libiothsm-std innan du följer stegen i det här avsnittet. Mer information finns i Uppdatera från 1.0 eller 1.1 till den senaste versionen.

  1. Gå till Azure IoT Edge-versionerna och leta reda på den versionsversion som du vill rikta in dig på.

  2. Expandera avsnittet Tillgångar för den versionen.

  3. Varje version bör ha nya filer för IoT Edge och identitetstjänsten. Om du ska installera IoT Edge på en offlineenhet laddar du ned filerna i förväg. Annars använder du följande kommandon för att uppdatera dessa komponenter.

    1. Hitta filen aziot-identity-service som matchar IoT Edge-enhetens arkitektur. Högerklicka på fillänken och kopiera länkadressen.

    2. Använd den kopierade länken i följande kommando för att installera den versionen av identitetstjänsten:

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. Hitta filen aziot-edge som matchar IoT Edge-enhetens arkitektur. Högerklicka på fillänken och kopiera länkadressen.

    2. Använd den kopierade länken i följande kommando för att installera den versionen av IoT Edge.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

Avinstallera IoT Edge

Om du vill ta bort IoT Edge-installationen från enheten använder du följande kommandon.

Ta bort IoT Edge-körningen.

sudo apt-get autoremove --purge aziot-edge

--purge Utelämna flaggan om du planerar att installera om IoT Edge och använda samma konfigurationsinformation i framtiden. Flaggan --purge tar bort alla filer som är associerade med IoT Edge, inklusive dina konfigurationsfiler.

När IoT Edge-körningen tas bort stoppas alla containrar som skapats men finns kvar på enheten. Visa alla containrar för att se vilka som finns kvar.

sudo docker ps -a

Ta bort containrarna från enheten, inklusive de två körningscontainrarna.

sudo docker rm -f <container ID>

Ta slutligen bort containerkörningen från enheten.

sudo apt-get autoremove --purge moby-engine

Nästa steg

Fortsätt att distribuera IoT Edge-moduler för att lära dig hur du distribuerar moduler till din enhet.