Skapa och etablera IoT Edge i stor skala på Linux med hjälp av symmetrisk nyckel

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 automatisk etablering av en eller flera Linux-IoT Edge-enheter med symmetriska nycklar. Du kan automatiskt Azure IoT Edge enheter med Azure IoT Hub enhetsetableringstjänsten (DPS). Om du inte är bekant med processen för automatisk etablering kan du granska etableringsöversikten innan du fortsätter.

Uppgifterna är följande:

  1. Skapa antingen en enskild registrering för en enskild enhet eller en gruppregistrering för en uppsättning enheter.
  2. Installera IoT Edge och anslut till IoT Hub.

Tips

För en förenklad upplevelse kan du prova Azure IoT Edge konfigurationsverktyget. Det här kommandoradsverktyget, som för närvarande finns i offentlig förhandsversion, IoT Edge på enheten och tillser den med HJÄLP av DPS och symmetrisk nyckel attestation.

Atterstation för symmetrisk nyckel är en enkel metod för att autentisera en enhet med en instans av enhetsetableringstjänsten. Den här attestationsmetoden representerar en "Hello world"-upplevelse för utvecklare som är nybörjare på enhetsetablering eller som inte har strikta säkerhetskrav. Attestering av enheter med ett TPM- eller X.509-certifikat är säkrare och bör användas för striktare säkerhetskrav.

Förutsättningar

Molnresurser

  • En aktiv IoT-hubb
  • En instans av IoT Hub device provisioning-tjänsten i Azure som är länkad till din IoT-hubb
    • Om du inte har en instans av enhetsetableringstjänsten kan du följa anvisningarna i avsnitten Skapa en ny IoT Hub-enhetsetableringstjänst och Länka IoT-hubben och enhetsetableringstjänsten i snabbstarten för IoT Hub-enhetsetableringstjänsten.
    • När enhetsetableringstjänsten körs kopierar du värdet för ID-omfång från översiktssidan. Du använder det här värdet när du konfigurerar IoT Edge körning.

Krav på enheten

En fysisk eller virtuell Linux-enhet som ska IoT Edge enhet.

Du måste definiera ett unikt registrerings-ID för att identifiera varje enhet. Du kan använda MAC-adressen, serienummer eller unik information från enheten. Du kan till exempel använda en kombination av en MAC-adress och ett serienummer som bildar följande sträng för ett registrerings-ID: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 . Giltiga tecken är gemener alfanumeriska och bindestreck ( - ).

Skapa en DPS-registrering

Skapa en registrering för att etablera en eller flera enheter via DPS.

Om du vill etablera en enskild enhet IoT Edge skapar du en enskild registrering. Om du behöver flera etablerade enheter följer du stegen för att skapa en DPS-gruppregistrering.

När du skapar en registrering i DPS har du möjlighet att deklarera ett första enhetstvillingtillstånd. I enhetstvillingen kan du ange taggar för att gruppera enheter efter mått som du behöver i din lösning, till exempel region, miljö, plats eller enhetstyp. Dessa taggar används för att skapa automatiska distributioner.

Mer information om registreringar i device provisioning-tjänsten finns i Så här hanterar du enhetsregistreringar.

Skapa en enskild DPS-registrering

Tips

Stegen i den här artikeln gäller för Azure Portal, men du kan också skapa enskilda registreringar med hjälp av Azure CLI. Mer information finns i az iot dps enrollment. Som en del av CLI-kommandot använder du den kantaktiverade flaggan för att ange att registreringen är för en IoT Edge enhet.

  1. I Azure Portal navigerardu till din instans IoT Hub enhetsetableringstjänsten.

  2. Under Inställningar väljer du Hantera registreringar.

  3. Välj Lägg till enskild registrering och slutför sedan följande steg för att konfigurera registreringen:

    1. För Mekanism väljer du Symmetrisk nyckel.

    2. Ange ett unikt registrerings-ID för din enhet.

    3. Du kan också ange ett IoT Hub enhets-ID för din enhet. Du kan använda enhets-ID:er för att rikta in dig på en enskild enhet för moduldistribution. Om du inte anger ett enhets-ID används registrerings-ID:t.

    4. Välj Sant för att deklarera att registreringen gäller för en IoT Edge enhet.

    5. Du kan också lägga till ett taggvärde i den inledande enhetstvillingens tillstånd. Du kan använda taggar för att rikta in dig på grupper av enheter för moduldistribution. Exempel:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Välj Spara.

  4. Kopiera värdet för den enskilda registreringens primärnyckel som ska användas när du IoT Edge körningen.

Nu när det finns en registrering för den här IoT Edge kan körningen automatiskt etablera enheten under installationen.

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

När körningen har installerats på enheten konfigurerar du den med den information den använder för att ansluta till enhetsetableringstjänsten och IoT Hub.

Ha följande information klar:

  • Värdet för DPS-ID-omfång
  • Enhetsregistrerings-ID:t som du skapade
  • Antingen primärnyckeln från en enskild registrering eller en härledd nyckel för enheter som använder en gruppregistrering.
  1. Öppna konfigurationsfilen på den IoT Edge enheten.

    sudo nano /etc/iotedge/config.yaml
    
  2. Leta reda på avsnittet etableringskonfigurationer i filen. Avkommentera raderna för dps symmetrisk nyckeletablering och se till att andra etableringsrader har kommenterats bort.

    Raden provisioning: ska inte ha något föregående blanksteg och kapslade objekt ska vara indragna med två blanksteg.

    # DPS TPM provisioning configuration
    provisioning:
      source: "dps"
      global_endpoint: "https://global.azure-devices-provisioning.net"
      scope_id: "PASTE_YOUR_SCOPE_ID_HERE"
      attestation:
        method: "symmetric_key"
        registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE"
        symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE"
    #  always_reprovision_on_startup: true
    #  dynamic_reprovisioning: false
    
  3. Uppdatera värdena för scope_id , registration_id och med symmetric_key dps- och enhetsinformation.

  4. Du kan också använda always_reprovision_on_startup raderna eller för att konfigurera dynamic_reprovisioning enhetens återetableringsbeteende. Om en enhet är inställd på att etableras igen vid start försöker den alltid etablera med DPS först och sedan återställa till etableringssäkerhetskopia om det misslyckas. Om en enhet är inställd på att dynamiskt återetablera sig IoT Edge startar om och återetablera om en ometableringshändelse upptäcks. Mer information finns i IoT Hub om enhetsetableringsbegrepp.

  5. Starta om IoT Edge-körningen så att den hämtar alla konfigurationsändringar som du har gjort på enheten.

    sudo systemctl restart iotedge
    
  1. Skapa en konfigurationsfil för enheten baserat på en mallfil som tillhandahålls som en del av IoT Edge installation.

    sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
    
  2. Öppna konfigurationsfilen på den IoT Edge enheten.

    sudo nano /etc/aziot/config.toml
    
  3. Leta upp avsnittet Etablering i filen. Avkommentera raderna för DPS-etablering med symmetrisk nyckel och se till att andra etableringsrader har kommenterats bort.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE"
    
  4. Uppdatera värdena för id_scope , registration_id och med symmetric_key dps- och enhetsinformation.

    Parametern för den symmetriska nyckeln kan acceptera ett värde för en infogade nyckel, en fil-URI eller en PKCS#11-URI. Avkommenteringen är bara en symmetrisk nyckellinje, baserat på vilket format du använder.

    Om du använder PKCS#11-URI:er hittar du avsnittet PKCS#11 i konfigurationsfilen och anger information om din PKCS#11-konfiguration.

  5. Spara och stäng filen config.toml.

  6. Tillämpa de konfigurationsändringar som du har gjort IoT Edge.

    sudo iotedge config apply
    

Verifiera att installationen har lyckats

Om körningen har startats kan du gå in på IoT Hub och börja distribuera IoT Edge moduler till din enhet.

Du kan kontrollera att den enskilda registrering som du skapade i enhetsetableringstjänsten har använts. Gå till instansen av enhetsetableringstjänsten i Azure Portal. Öppna registreringsinformationen för den enskilda registrering som du skapade. Observera att statusen för registreringen har tilldelats och att enhets-ID:t visas.

Använd följande kommandon på enheten för att kontrollera att IoT Edge installerats och startats.

Kontrollera status för IoT Edge-tjänsten.

systemctl status iotedge

Granska tjänstloggar.

journalctl -u iotedge --no-pager --no-full

Lista moduler som körs.

iotedge list

Kontrollera status för IoT Edge-tjänsten.

sudo iotedge system status

Granska tjänstloggar.

sudo iotedge system logs

Lista moduler som körs.

sudo iotedge list

Nästa steg

Registreringsprocessen för enhetsetableringstjänsten låter dig ange enhets-ID och taggar för enhetstvilling samtidigt som du etablerar den nya enheten. Du kan använda dessa värden för att rikta in dig på enskilda enheter eller grupper av enheter med hjälp av automatisk enhetshantering. Lär dig hur du distribuerar och övervakar IoT Edge moduler i stor skala med hjälp Azure Portal eller med Hjälp av Azure CLI.