Skapa och etablera IoT Edge för Linux på Windows-enheter i stor skala med symmetriska nycklar

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

Den här artikeln innehåller instruktioner från slutpunkt till slutpunkt för automatisk avbildning av en eller flera IoT Edge för Linux på Windows-enheter med symmetriska nycklar. Du kan automatiskt etablera Azure IoT Edge-enheter med Azure IoT Hub enhetsetableringstjänst (DPS). Om du inte känner till processen för automatisk avetablering läser du 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. Distribuera en virtuell Linux-dator med IoT Edge-körning installerad och anslut den till IoT Hub.

Symmetrisk nyckelattestering är en enkel metod för att autentisera en enhet med en tjänstinstans för enhetsetablering. Den här attesteringsmetoden representerar en "Hello World"-upplevelse för utvecklare som är nybörjare på enhetsetablering eller inte har strikta säkerhetskrav. Enhetsattestering med ett TPM - eller X.509-certifikat är säkrare och bör användas för strängare säkerhetskrav.

Förutsättningar

Molnresurser

  • En aktiv IoT-hubb
  • En instans av IoT Hub enhetsetableringstjänst i Azure som är länkad till din IoT-hubb

Krav på enheten

En Windows-enhet med följande minimikrav:

  • Systemkrav

    • Windows 10 1/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 och Windows Server 2019 minimum build 17763 med alla aktuella kumulativa uppdateringar installerade.
  • Maskinvarukrav

    • Minsta lediga minne: 1 GB
    • Minsta lediga diskutrymme: 10 GB
  • Stöd för virtualisering

  • Nätverksstöd

    • Windows Server har ingen standardväxel. Innan du kan distribuera EFLOW till en Windows Server-enhet måste du skapa en virtuell växel. Mer information finns i Skapa virtuell växel för Linux i Windows.
    • Windows Desktop-versioner levereras med en standardväxel som kan användas för EFLOW-installation. Om det behövs kan du skapa en egen anpassad virtuell växel.

Tips

Om du vill använda GPU-accelererade Linux-moduler i azure-IoT Edge för Linux i Windows-distribution finns det flera konfigurationsalternativ att överväga.

Du måste installera rätt drivrutiner beroende på din GPU-arkitektur och du kan behöva åtkomst till en Windows Insider Program-version. Information om hur du fastställer dina konfigurationsbehov och uppfyller dessa krav finns i GPU-acceleration för Azure IoT Edge för Linux i Windows.

Se till att du tar dig tid att uppfylla kraven för GPU-acceleration nu. Du måste starta om installationsprocessen om du vill ha GPU-acceleration under installationen.

Utvecklarverktyg

Förbered målenheten för installationen av Azure IoT Edge för Linux i Windows och distributionen av den virtuella Linux-datorn:

  1. Ange körningsprincipen på målenheten till AllSigned. Du kan kontrollera den aktuella körningsprincipen i en upphöjd PowerShell-prompt med följande kommando:

    Get-ExecutionPolicy -List
    

    Om körningsprincipen för inte AllSignedär kan du ange körningsprincipen med hjälp avlocal machine:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Mer information om Azure IoT Edge för Linux i Windows PowerShell-modulen finns i PowerShell-funktionsreferensen.

Skapa en DPS-registrering

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

Om du vill etablera en enda IoT Edge enhet 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 de mått 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 enhetsetableringstjänsten finns i Hantera enhetsregistreringar.

Skapa en individuell 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 (az iot dps enrollment). Som en del av CLI-kommandot använder du den gränsaktiverade flaggan för att ange att registreringen är för en IoT Edge enhet.

  1. I Azure Portal navigerar du till din instans av IoT Hub enhetsetableringstjänst.

  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:n för att rikta in dig på en enskild enhet för moduldistribution. Om du inte anger något 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 det initiala enhetstvillingtillståndet. Du kan använda taggar till målgrupper med enheter för moduldistribution. Exempel:

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

  4. Kopiera den enskilda registreringens primärnyckelvärde som ska användas när du installerar IoT Edge-körningen.

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

Installera IoT Edge

Distribuera Azure IoT Edge för Linux i Windows på målenheten.

Anteckning

Följande PowerShell-process beskriver hur du distribuerar IoT Edge för Linux på Windows på den lokala enheten. Om du vill distribuera till en fjärrmålenhet med Hjälp av PowerShell kan du använda Remote PowerShell för att upprätta en anslutning till en fjärrenhet och köra dessa kommandon via fjärranslutning på den enheten.

  1. I en upphöjd PowerShell-session kör du vart och ett av följande kommandon för att ladda ned IoT Edge för Linux i Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. Installera IoT Edge för Linux på Windows på din enhet.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Du kan ange anpassade IoT Edge för Linux vid Windows-installation och VHDX-kataloger genom att lägga till INSTALLDIR="<FULLY_QUALIFIED_PATH>" och VHDXDIR="<FULLY_QUALIFIED_PATH>" parametrar i installationskommandot. Om du till exempel vill använda mappen D:\EFLOW för installation och D:\EFLOW-VHDX för VHDX kan du använda följande PowerShell-cmdlet.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Ange körningsprincipen på målenheten till AllSigned om den inte redan är det. Se PowerShell-kraven för kommandon för att kontrollera den aktuella körningsprincipen och ange körningsprincipen till AllSigned.

  4. Skapa IoT Edge för Linux i Windows-distribution. Distributionen skapar din virtuella Linux-dator och installerar IoT Edge körning åt dig.

    Deploy-Eflow
    

    Tips

    Som standard skapar kommandot din Deploy-Eflow virtuella Linux-dator med 1 GB RAM-minne, 1 vCPU-kärna och 16 GB diskutrymme. De resurser som din virtuella dator behöver är dock mycket beroende av de arbetsbelastningar som du distribuerar. Om den virtuella datorn inte har tillräckligt med minne för att stödja dina arbetsbelastningar startar den inte.

    Du kan anpassa den virtuella datorns tillgängliga resurser med hjälp av Deploy-Eflow kommandots valfria parametrar. Detta krävs för att distribuera EFLOW på en enhet med minimikraven för maskinvara.

    Kommandot nedan skapar till exempel en virtuell dator med 1 vCPU-kärna, 1 GB RAM-minne (representerat i MB) och 2 GB diskutrymme:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    Information om alla tillgängliga valfria parametrar finns i PowerShell-funktioner för IoT Edge för Linux i Windows.

    Varning

    Som standard har den virtuella EFLOW Linux-datorn ingen DNS-konfiguration. Distributioner med DHCP försöker hämta DNS-konfigurationen som sprids av DHCP-servern. Kontrollera DNS-konfigurationen för att säkerställa internetanslutningen. Mer information finns i AzEFLOW-DNS.

    Du kan tilldela en GPU till din distribution för att aktivera GPU-accelererade Linux-moduler. För att få åtkomst till dessa funktioner måste du installera kraven som beskrivs i GPU-acceleration för Azure IoT Edge för Linux i Windows.

    Om du vill använda en GPU-genomströmning lägger du till parametrarna gpuName, gpuPassthroughType och gpuCount i kommandot Deploy-Eflow . Information om alla tillgängliga valfria parametrar finns i PowerShell-funktioner för IoT Edge för Linux i Windows.

    Varning

    Genomströmning av maskinvaruenheter kan öka säkerhetsriskerna. Microsoft rekommenderar en enhetsreducerande drivrutin från GPU:ns leverantör när det är tillämpligt. Mer information finns i Distribuera grafikenheter med diskret enhetstilldelning.

  5. Ange "Y" för att godkänna licensvillkoren.

  6. Ange "O" eller "R" för att växla Valfria diagnostikdata på eller av, beroende på vad du föredrar.

  7. När distributionen är klar rapporterar PowerShell-fönstret Distributionen har slutförts.

    En lyckad distribution säger

    Efter en lyckad distribution är du redo att etablera enheten.

Etablera enheten med sin molnidentitet

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

Ha följande information klar:

  • DPS ID-omfångsvärdet
  • 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.

Kör följande kommando i en upphöjd PowerShell-session med platshållarvärdena uppdaterade med dina egna värden:

Provision-EflowVm -provisioningType DpsSymmetricKey -scopeId PASTE_YOUR_ID_SCOPE_HERE -registrationId PASTE_YOUR_REGISTRATION_ID_HERE -symmKey PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE

Kontrollera att installationen har slutförts

Kontrollera att IoT Edge för Linux i Windows har installerats och konfigurerats på din IoT Edge enhet.

Du kan kontrollera att den enskilda registreringen som du skapade i enhetsetableringstjänsten användes. Gå till din instans 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.

  1. Logga in på din IoT Edge för Linux på en virtuell Windows-dator med följande kommando i PowerShell-sessionen:

    Connect-EflowVm
    

    Anteckning

    Det enda konto som tillåts att SSH till den virtuella datorn är den användare som skapade det.

  2. När du är inloggad kan du kontrollera listan över IoT Edge moduler som körs med hjälp av följande Linux-kommando:

    sudo iotedge list
    
  3. Om du behöver felsöka IoT Edge-tjänsten använder du följande Linux-kommandon.

    1. Hämta tjänstloggarna.

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

      sudo iotedge check
      

    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 i IoT Hub ange modulerna för enheten och skapa en distribution. När du skapar en distribution för enheten startas modulerna på enheten, inklusive modulen IoT Edge Hub.

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.

Avinstallera IoT Edge för Linux i Windows

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

  1. Öppna inställningar i Windows
  2. Välj Lägg till eller ta bort program
  3. Välj Azure IoT Edge app
  4. Välj Avinstallera

Nästa steg

Med registreringsprocessen för enhetsetableringstjänsten kan du ange taggar för enhets-ID och 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 av Azure Portal eller med Hjälp av Azure CLI.

Du kan även: