Skapa och etablera en IoT Edge för Linux på Windows-enheter i stor skala med hjälp av en TPM

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

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

Den här artikeln innehåller instruktioner för automatisk avetablering av en Azure IoT Edge för Linux på Windows-enheter med hjälp av en TPM (Trusted Platform Module). Du kan automatiskt etablera Azure IoT Edge-enheter med Azure IoT Hub-enhetsetableringstjänsten. Om du inte känner till processen för automatisk avetablering läser du etableringsöversikten innan du fortsätter.

Den här artikeln beskriver två metoder. Välj din inställning baserat på lösningens arkitektur:

  • Autoetablera en Linux på Windows-enhet med fysisk TPM-maskinvara.
  • Autoetablera en Linux på Windows-enhet med hjälp av en simulerad TPM. Vi rekommenderar endast den här metoden som ett testscenario. En simulerad TPM erbjuder inte samma säkerhet som en fysisk TPM.

Uppgifterna är följande:

  • Installera IoT Edge för Linux i Windows.
  • Hämta TPM-informationen från enheten.
  • Skapa en enskild registrering för enheten.
  • Etablera enheten med dess TPM-information.

Förutsättningar

Molnresurser

  • En aktiv IoT-hubb
  • En instans av IoT Hub-enhetsetableringstjänsten i Azure, länkad till din IoT-hubb

Enhetskrav

En Windows-enhet med följande minimikrav:

  • Systemkrav

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 och Windows Server 2019 minsta version 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.

Dricks

Om du vill använda GPU-accelererade Linux-moduler i din Azure IoT Edge för Linux i Windows-distributionen finns det flera konfigurationsalternativ att tänka på.

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.

Utvecklingsverktyg

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 hjälp av 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.

Kommentar

TPM 2.0 krävs när du använder TPM-attestering med enhetsetableringstjänsten.

Du kan bara skapa enskilda, inte grupp- och enhetsetableringstjänstregistreringar när du använder en TPM.

Installera IoT Edge

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

Kommentar

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

  1. I en upphöjd PowerShell-session kör du något av följande kommandon beroende på din målenhetsarkitektur 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 anpassad IoT Edge för Linux i 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-distributionen. Distributionen skapar din virtuella Linux-dator och installerar IoT Edge-körningen åt dig.

    Deploy-Eflow
    

    Dricks

    Som standard skapar kommandot den Deploy-Eflow virtuella Linux-datorn 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 en 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

    Aktivering av genomströmning av maskinvaruenheter kan öka säkerhetsriskerna. Microsoft rekommenderar en enhetsreduceringsdrivrutin 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 lyckades.

    En lyckad distribution säger

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

Det finns några steg för att förbereda enheten för etablering med TPM. Låt distributionen vara öppen medan du förbereder enheten. Du återgår till distributionen senare i artikeln.

Aktivera TPM-genomströmning

IoT Edge för Linux på en virtuell Windows-dator har en TPM-funktion som kan aktiveras eller inaktiveras. Som standard är den inaktiverad. När den här funktionen är aktiverad kan den virtuella datorn komma åt värddatorns TPM.

  1. Öppna PowerShell i en upphöjd session.

  2. Om du inte redan har gjort det anger du körningsprincipen på enheten så AllSigned att du kan köra IoT Edge för Linux på Windows PowerShell-funktioner.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  3. Aktivera TPM-funktionen.

    Set-EflowVmFeature -feature 'DpsTpm' -enable
    

Hämta TPM-informationen från enheten

För att etablera enheten behöver du en bekräftelsenyckel för ditt TPM-chip och registrerings-ID för enheten. Du anger den här informationen för din instans av enhetsetableringstjänsten så att tjänsten kan identifiera din enhet när den försöker ansluta.

Bekräftelsenyckeln är unik för varje TPM-chip. Den erhålls från den TPM-chiptillverkare som är associerad med den. Du kan härleda ett unikt registrerings-ID för din TPM-enhet genom att till exempel skapa en SHA-256-hash för bekräftelsenyckeln.

IoT Edge för Linux i Windows innehåller ett PowerShell-skript som hjälper dig att hämta den här informationen från din TPM. Följ dessa steg på enheten om du vill använda skriptet:

  1. Öppna PowerShell i en upphöjd session.

  2. Kör kommandot .

    Get-EflowVmTpmProvisioningInfo | Format-List
    

Skapa en enhetsetableringstjänstregistrering

Använd TPM:s etableringsinformation för att skapa en enskild registrering i enhetsetableringstjänsten.

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

Dricks

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

  1. I Azure-portalen går du till din instans av 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 TPM.

    2. Ange bekräftelsenyckelnoch registrerings-ID:t som du kopierade från den virtuella datorn eller den fysiska enheten.

    3. Ange ett ID för enheten om du vill. Om du inte anger något enhets-ID används registrerings-ID:t.

    4. Välj Sant för att deklarera att den virtuella datorn eller den fysiska enheten är en IoT Edge-enhet.

    5. Välj den länkade IoT-hubb som du vill ansluta enheten till eller välj Länka till ny IoT Hub. Du kan välja flera hubbar och enheten tilldelas till en av dem enligt den valda tilldelningsprincipen.

    6. Lägg till ett taggvärde i det initiala enhetstvillingtillståndet om du vill. Du kan använda taggar till målgrupper med enheter för moduldistribution. Mer information finns i Distribuera IoT Edge-moduler i stor skala.

    7. Välj Spara.

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

Etablera enheten med dess molnidentitet

  1. Öppna en upphöjd PowerShell-session på Windows-enheten.

  2. Etablera enheten med hjälp av omfångs-ID :t som du samlade in från din instans av enhetsetableringstjänsten.

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE"
    

    Om du har registrerat enheten med ett anpassat registrerings-ID måste du även ange registrerings-ID:t när du etablerar:

    Provision-EflowVM -provisioningType "DpsTpm" -scopeId "SCOPE_ID_HERE" -registrationId "REGISTRATION_ID_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.

Om körningen har startats kan du gå till din IoT-hubb och börja distribuera IoT Edge-moduler till enheten.

Du kan kontrollera att den enskilda registreringen som du skapade i enhetsetableringstjänsten användes. Gå till instansen av enhetsetableringstjänsten i Azure-portalen. Ö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 har installerats och startats.

  1. Anslut till din IoT Edge för Linux på en virtuell Windows-dator med hjälp av följande kommando i PowerShell-sessionen:

    Connect-EflowVm
    

    Kommentar

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

  2. När du har loggat in 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änstloggar om du behöver felsöka tjänsten.

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

      sudo iotedge check
      

    Kommentar

    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 IoT Edge Hub-modulen 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 IoT Edge Hub-modulen.

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-portalen eller Azure CLI.