Skapa och etablera en IoT Edge på Linux med symmetriska nycklar

Gäller för:  Ja-ikonen IoT Edge 1,1 andra versioner: IoT Edge 1,2

Gäller för:  Ja-ikonen IoT Edge 1,2 andra versioner: IoT Edge 1,1

Den här artikeln innehåller instruktioner från slutet för att registrera och etablera en Linux-IoT Edge-enhet, inklusive installation IoT Edge.

Varje enhet som ansluter till en IoT Hub 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, inklusive IoT-hubbens värdnamn, enhets-ID och den information som enheten använder för att autentisera för IoT Hub.

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

  • Symmetriska nycklar: När du skapar en ny enhetsidentitet IoT Hub skapar tjänsten två nycklar. Du placerar en av nycklarna på enheten och den visar nyckeln för att IoT Hub vid autentisering.

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

  • X.509-själv signerat: 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 IoT Hub visar den 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 gå till Skapa och etablera en IoT Edge på 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änsten:

Förutsättningar

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

Verktyg för enhetshantering

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

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

IoT Edge installation

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

Microsoft tillhandahåller installationspaket för Ubuntu Server 18.04- och Raspberry Pi OS Stretch-operativsystem.

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

Anteckning

Stöd för ARM64-enheter finns i offentlig förhandsversion.

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 IoT-hubben i Azure Portal skapas IoT Edge och hanteras separat från IoT-enheter som inte är gränsaktiverade.

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

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

    Lägga till IoT Edge en enhet från Azure Portal

  3. Ange följande information på sidan Skapa en enhet:

    • Skapa ett beskrivande enhets-ID. Anteckna detta enhets-ID eftersom du kommer att använda det senare.
    • Välj Symmetrisk nyckel som autentiseringstyp.
    • Använd standardinställningarna för att automatiskt generera autentiseringsnycklar och ansluta den nya enheten till hubben.
  4. Välj Spara.

Nu när du har en enhet registrerad 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 autentisering med symmetrisk nyckel behöver sina anslutningssträngar för att slutföra installationen och etableringen av IoT Edge-körningen.

Alla gränsaktiverade enheter som ansluter till din IoT-hubb visas på IoT Edge sidan.

Använd Azure Portal för att visa alla IoT Edge i din IoT-hubb

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

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

  1. IoT Edge i portalen klickar du på enhets-ID:t i listan över IoT Edge enheter.
  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.

Du måste utföra två steg på enheten innan den är redo att installera IoT Edge-körningen. Enheten behöver åtkomst till Microsofts installationspaket och en containermotor måste vara installerad.

Få åtkomst till Microsoft-installationspaketen

  1. Ladda ned konfigurationspaketet för lagringsplatsen som matchar enhetens operativsystem.

    • Ubuntu Server 18.04:

      curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
    • Raspberry Pi OS Stretch:

      curl https://packages.microsoft.com/config/debian/stretch/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
  2. Installera konfigurationspaketet för att lägga till Microsofts paketdatabas och offentliga GPG-nyckel.

    sudo apt install ./packages-microsoft-prod.deb
    

Anteckning

Azure IoT Edge programvarupaketen 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 containermotor som officiellt stöds med IoT Edge. Docker CE/EE-containeravbildningar är kompatibla med Moby-körningen.

  1. Uppdatera paketlistor på enheten.

    sudo apt-get update
    
  2. Installera Moby-motorn.

    sudo apt-get install moby-engine
    

    Tips

    Om du får fel när du installerar Moby-containermotorn kontrollerar du Linux-kerneln för Moby-kompatibilitet. Vissa inbäddade enhetstillverkare skickar enhetsavbildningar som innehåller anpassade Linux-kernels utan de funktioner som krävs för kompatibilitet med containermotorn. Kör följande kommando, som använder check-config-skriptet från Moby, för att kontrollera din kernelkonfiguration:

    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 din kernel från källan och välja de associerade modulerna för inkludering i lämplig kernel-.config. På samma sätt, om du använder en kernelkonfigurationsgenerator som eller , hittar och aktiverar du respektive funktioner och defconfig menuconfig återskapar din kernel därefter. När du har distribuerat din nyligen ändrade kernel 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 underhåller säkerhetsstandarder på IoT Edge enhet. Daemonen startar vid varje start och startar enheten genom att starta resten av IoT Edge-körningen.

Stegen i det här avsnittet representerar en typisk process för att installera den senaste versionen på en enhet som har internetanslutning. Om du behöver installera en specifik version, t.ex. en tidigare version, eller om du behöver installera den offline, följer du installationsstegen offline eller specifik version längre fram i den här artikeln.

Uppdatera paketlistor på enheten.

sudo apt-get update

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

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.

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

IoT-identitetstjänsten introducerades tillsammans med version 1.2 av IoT Edge. Den här tjänsten hanterar 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 en typisk process för att installera den senaste versionen på en enhet som har internetanslutning. Om du behöver installera en specifik version, t.ex. en tidigare version, eller om du behöver installera den offline, följer du installationsstegen offline eller specifik version längre fram i den här artikeln.

Anteckning

Stegen i det här avsnittet visar hur du installerar IoT Edge version 1.2.

Om du redan har en IoT Edge-enhet som kör en äldre version och vill uppgradera till 1.2, använder du stegen i Uppdatera IoT Edge säkerhetsdaemon och runtime. Version 1.2 skiljer sig tillräckligt från tidigare versioner IoT Edge att specifika steg krävs för att uppgradera.

Uppdatera paketlistor på enheten.

sudo apt-get update

Kontrollera vilka versioner av IoT Edge och IoT-identitetstjänsten som är tillgängliga.

apt list -a aziot-edge aziot-identity-service

Om du vill installera den senaste IoT Edge och IoT-identitetstjänstpaketet använder du följande kommando:

sudo apt-get install aziot-edge

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 molnidentitet och autentiseringsinformation.

Öppna IoT Edge på enheten.

sudo nano /etc/iotedge/config.yaml

Leta upp konfigurationerna för etablering av filen och avkommentera konfiguration för manuell etablering med hjälp av en anslutningssträng, om den inte redan är avkommenterad.

# 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 din IoT Edge enhet. Se till att eventuella andra etableringsavsnitt har kommenterats bort. Kontrollera att etableringen: raden inte har något föregående blanksteg och att kapslade objekt är indragna med två blanksteg.

Klistra in urklippsinnehåll 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

Du kan snabbt konfigurera din IoT Edge med autentisering med symmetrisk nyckel med hjälp av följande kommando:

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

Kommandot iotedge config mp skapar en konfigurationsfil på enheten och anger anslutningssträngen i filen.

Tillämpa konfigurationsändringarna.

sudo iotedge config apply

Om du vill se konfigurationsfilen kan du öppna den:

sudo nano /etc/aziot/config.toml

Kontrollera att konfigurationen lyckades

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

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

sudo systemctl status iotedge
sudo iotedge system status

Ett lyckat statussvar är Ok .

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

journalctl -u iotedge
sudo iotedge system logs

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

sudo iotedge check

Tips

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

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 som körs. EdgeAgent-modulen körs som standard och hjälper till att installera och starta eventuella ytterligare moduler som du distribuerar till din enhet.

sudo iotedge list

När du skapar en 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.

Offline eller specifik version (valfritt)

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

  • Installera IoT Edge offline
  • Installera en version av en versionskandidat

Använd stegen i det här avsnittet om du vill installera en specifik version av Azure IoT Edge som inte är tillgänglig via apt-get install . Microsoft-paketlistan innehåller bara en begränsad uppsättning av de senaste versionerna och deras underversioner, så de här stegen är till för alla som vill installera en äldre version eller en version av en kandidatversion.

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

  1. Gå till Azure IoT Edge versionernaoch leta reda på den version som du vill använda.

  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 en IoT Edge offlineenhet laddar du ned dessa filer i förväg. Annars använder du följande kommandon för att uppdatera komponenterna.

    1. Hitta filen libiothsm-std 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 hsmlib:

      curl -L libiothsm-std_link_here -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
      
    3. Hitta den iotedge-fil som IoT Edge din enhet arkitektur. 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
      

Anteckning

Om enheten för närvarande kör IoT Edge version 1.1 eller senare 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 1.2.

  1. Gå till Azure IoT Edge versionernaoch leta reda på den version som du vill använda.

  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 en IoT Edge offlineenhet laddar du ned dessa filer i förväg. Annars använder du följande kommandon för att uppdatera komponenterna.

    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
      
    3. Hitta den aziot Edge-fil som matchar IoT Edge enhetens arkitektur. 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.

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

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

Avinstallera IoT Edge

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

Ta bort IoT Edge-körningen.

sudo apt-get remove iotedge
sudo apt-get remove aziot-edge

Använd flaggan --purge om du vill ta bort alla filer som är associerade med IoT Edge, inklusive konfigurationsfilerna. Lämna den här flaggan om du vill installera IoT Edge och använda samma konfigurationsinformation i framtiden.

När IoT Edge tas bort stoppas alla containrar som den skapade, men de finns fortfarande 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>

Ta slutligen bort containerkörningen från enheten.

sudo apt-get remove --purge moby-cli
sudo apt-get remove --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.