Dela via


Skapa och etablera en IoT Edge-enhet i Linux med hjälp av symmetriska nycklar

Gäller för:ja-ikonen IoT Edge 1.1

Viktigt

IoT Edge datum då support upphör 1.1 var den 13 december 2022. I informationen om Microsoft-produktens livscykel hittar du fler uppgifter om vilken support som gäller för denna produkt, tjänst, teknik eller detta API. Mer information om hur du uppdaterar till den senaste versionen av IoT Edge finns i 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, inklusive 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 innehåller IoT Hub-värdnamnet, enhets-ID:t och den information som enheten använder för att autentisera till IoT Hub.

Stegen i den här artikeln beskriver en process som kallas manuell etablering, där du ansluter en enskild 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 för IoT Hub vid autentisering.

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

  • Självsignerat X.509: 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 för att IoT Hub visas ett certifikat och IoT Hub verifierar att certifikatet matchar dess tumavtryck.

    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 läser du Skapa och etablera en IoT Edge-enhet i Linux med X.509-certifikat.

Anteckning

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

Förutsättningar

Den här artikeln beskriver hur du registrerar din IoT Edge-enhet och installerar IoT Edge på den. Dessa uppgifter har olika förutsättningar och verktyg som används för att utföra dem. Kontrollera att du har alla krav som beskrivs innan du fortsätter.

Verktyg för enhetshantering

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

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

Krav på enheten

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 Azure IoT Edge system som stöds.

Registrera din enhet

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

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

  1. Logga in på Azure Portal 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. Anteckna det här enhets-ID:t eftersom du kommer att använda det senare.
    • Markera kryssrutan IoT Edge Enhet.
    • Välj Symmetrisk nyckel som autentiseringstyp.
    • Använd standardinställningarna för att automatiskt generera autentiseringsnycklar och ansluta den nya enheten till din hubb.
  4. Välj Spara.

Nu när du har registrerat en enhet i IoT Hub hämtar du den information som du använder för att slutföra installationen och etableringen av IoT Edge-körningen.

Visa registrerade enheter och hämta etableringsinformation

Enheter som använder symmetrisk nyckelautentisering behöver sina anslutningssträngar för att slutföra installationen och etableringen av IoT Edge-körningen.

De gränsaktiverade enheter som ansluter till din IoT-hubb visas på sidan Enheter . Du kan filtrera listan efter typ av Iot Edge-enhet.

Skärmbild av hur du visar dina enheter i Azure Portal, IoT Hub.

När du är redo att konfigurera enheten behöver du anslutningssträngen som länkar den fysiska enheten med dess identitet i IoT-hubben.

Enheter som autentiserar med symmetriska nycklar har sina anslutningssträngar tillgängliga för kopiering i portalen.

  1. På sidan Enheter i portalen väljer du IoT Edge enhets-ID i listan.
  2. Kopiera värdet för antingen primär anslutningssträng eller sekundär anslutningssträng.

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-paket 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:

  • 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
    
  • 18.04:

    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
    

Anteckning

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 accepterar 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

När Moby-motorn har installerats konfigurerar du den så att den använder local loggningsdrivrutinen som loggningsmekanism. Mer information om loggningskonfiguration finns i Checklista för produktionsdistribution.

  • Skapa eller öppna Docker-daemonens konfigurationsfil på /etc/docker/daemon.json.

  • Ange loggningsdrivrutinen som standard för local loggningsdrivrutinen enligt exemplet nedan.

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

    sudo systemctl restart docker
    

    Tips

    Om du får fel när du installerar Moby-containermotorn kontrollerar du Linux-kerneln för Moby-kompatibilitet. Vissa tillverkare av inbäddade enheter skickar enhetsavbildningar som innehåller anpassade Linux-kernels utan de funktioner som krävs för containermotorns kompatibilitet. Kör följande kommando, som använder skriptet check-config som tillhandahålls av Moby, för att kontrollera kernelkonfigurationen:

    curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh
    chmod +x check-config.sh
    ./check-config.sh
    

    I skriptets utdata kontrollerar du att alla objekt under Generally Necessary och Network Drivers är aktiverade. Om du saknar funktioner aktiverar du dem genom att återskapa kerneln från källan och välja de associerade modulerna för inkludering i rätt kernel-.config. På samma sätt, om du använder en generator för kernelkonfiguration som defconfig eller menuconfig, letar du upp och aktiverar respektive funktioner och återskapar kerneln i enlighet med detta. När du har distribuerat den nyligen ändrade kerneln kör du check-config-skriptet igen för att kontrollera att alla nödvändiga funktioner har aktiverats.

Installera IoT Edge-körningen

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

Stegen i det här avsnittet representerar den vanliga processen för att installera den senaste 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.

Installera IoT Edge version 1.1.* tillsammans med paketet libiothsm-std:

sudo apt-get update; \
  sudo apt-get install iotedge

Anteckning

IoT Edge version 1.1 är den långsiktiga supportgrenen för IoT Edge. Om du kör en äldre version rekommenderar vi att du installerar eller uppdaterar till den senaste korrigeringen eftersom äldre versioner inte längre stöds.

Etablera enheten med dess molnidentitet

Nu när containermotorn och IoT Edge-körningen är installerade på enheten är du redo för nästa steg, som är att konfigurera enheten med dess molnidentitets- och autentiseringsinformation.

Öppna konfigurationsfilen på IoT Edge-enheten.

sudo nano /etc/iotedge/config.yaml

Leta reda på konfigurationerna för filen och avkommentera konfigurationen För manuell etablering med hjälp av en anslutningssträng , om den inte redan är okommenterad.

# Manual provisioning configuration using a connection string
provisioning:
source: "manual"
device_connection_string: "ADD_DEVICE_CONNECTION_STRING_HERE"

Uppdatera värdet för device_connection_string med anslutningssträngen från IoT Edge enheten. Kontrollera att alla andra etableringsavsnitt är kommenterade. Kontrollera att etableringen: raden inte har något föregående blanksteg och att kapslade objekt är indragna med två blanksteg.

Klistra in innehållet i Urklipp i Nano Shift+Right Click eller tryck på Shift+Insert.

Spara och stäng filen.

CTRL + X, Y, Enter

När du har angett etableringsinformationen i konfigurationsfilen startar du om daemonen:

sudo systemctl restart iotedge

Verifiera att konfigurationen har slutförts

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

Tips

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 sudo du framför kommandona.

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

sudo systemctl status iotedge

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

journalctl -u iotedge

Använd verktyget check för att verifiera enhetens konfiguration och anslutningsstatus.

sudo iotedge check

Tips

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

Anteckning

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

× produktionsberedskap: Edge Hubs lagringskatalog sparas i värdfilsystemet – Fel

Det 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 modulen IoT Edge Hub inte körs. Lös felet genom att ange modulerna för enheten i IoT Hub och skapa en distribution. När du skapar en distribution för enheten startas modulerna på enheten, inklusive modulen IoT Edge Hub.

Visa alla moduler som körs på din IoT Edge-enhet. 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 ytterligare moduler som du distribuerar till din enhet.

sudo iotedge list

När du skapar en ny IoT Edge enhet visas statuskoden 417 -- The device's deployment configuration is not set i Azure Portal. Den här statusen är normal och innebär att enheten är redo att ta emot en moduldistribution.

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

Använd 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. Listan över Microsoft-paket 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 version av versionen.

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

  1. Gå till Azure IoT Edge-versionerna och leta reda på den versionsversion som du vill använda som mål.

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

  3. Varje version bör ha nya filer för IoT Edge säkerhetsdaemon och hsmlib. 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. Leta reda på filen libiothsm-std som matchar din 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 hsmlib:

      curl -L <libiothsm-std_link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Leta upp den iotedge-fil som matchar arkitekturen för din IoT Edge-enhet. Högerklicka på fillänken och kopiera länkadressen.

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

      curl -L iotedge_link_here -o iotedge.deb && sudo apt-get install ./iotedge.deb
      

Nu när containermotorn och IoT Edge-körningen är installerade på enheten är du redo för nästa steg, nämligen att etablera enheten med dess molnidentitet.

Avinstallera IoT Edge

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

Ta bort IoT Edge-körningen.

sudo apt-get autoremove iotedge

När IoT Edge-körningen tas bort stoppas alla containrar som skapats men som fortfarande finns 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 name>

Slutligen tar du bort containerkörningen från enheten.

sudo apt-get autoremove --purge moby-engine