Een IoT Edge voor Linux-apparaat op grote schaal maken en inrichten met behulp van een TPM

Van toepassing op:IoT Edge 1.4 checkmark IoT Edge 1.4

Belangrijk

IoT Edge 1.4 is de ondersteunde release. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

Dit artikel bevat instructies voor het automatisch inrichten van een Azure IoT Edge voor Linux-apparaat op Een Windows-apparaat met behulp van een TPM (Trusted Platform Module). U kunt Automatisch Azure IoT Edge-apparaten inrichten met de Azure IoT Hub-apparaatinrichtingsservice. Als u niet bekend bent met het proces van automatische inrichting, raadpleegt u het inrichtingsoverzicht voordat u doorgaat.

In dit artikel worden twee methodologieën beschreven. Selecteer uw voorkeur op basis van de architectuur van uw oplossing:

  • Automatisch inrichten van een Linux-apparaat op Een Windows-apparaat met fysieke TPM-hardware.
  • Automatisch inrichten van een Linux-apparaat op Windows-apparaten met behulp van een gesimuleerde TPM. We raden deze methodologie alleen aan als testscenario. Een gesimuleerde TPM biedt niet dezelfde beveiliging als een fysieke TPM.

De taken zijn als volgt:

  • Installeer IoT Edge voor Linux in Windows.
  • Haal de TPM-gegevens op van uw apparaat.
  • Maak een afzonderlijke inschrijving voor het apparaat.
  • Richt uw apparaat in met de TPM-gegevens.

Vereisten

Cloudresources

Vereisten voor apparaten

Een Windows-apparaat met de volgende minimale vereisten:

  • Systeemvereisten

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 en Windows Server 2019 minimum build 17763 met alle huidige cumulatieve updates geïnstalleerd.
  • Hardwarevereisten

    • Minimaal gratis geheugen: 1 GB
    • Minimale vrije schijfruimte: 10 GB
  • Ondersteuning voor virtualisatie

  • Netwerkondersteuning

    • Windows Server wordt niet geleverd met een standaardswitch. Voordat u EFLOW op een Windows Server-apparaat kunt implementeren, moet u een virtuele switch maken. Zie Virtuele switch maken voor Linux in Windows voor meer informatie.
    • Windows Desktop-versies worden geleverd met een standaardswitch die kan worden gebruikt voor EFLOW-installatie. Indien nodig kunt u uw eigen aangepaste virtuele switch maken.

Fooi

Als u GPU-versnelde Linux-modules in uw Implementatie van Azure IoT Edge voor Linux in Windows wilt gebruiken, zijn er verschillende configuratieopties die u kunt overwegen.

U moet de juiste stuurprogramma's installeren, afhankelijk van uw GPU-architectuur en mogelijk hebt u toegang nodig tot een Build van het Windows Insider-programma. Zie GPU-versnelling voor Azure IoT Edge voor Linux in Windows om uw configuratiebehoeften te bepalen en aan deze vereisten te voldoen.

Zorg ervoor dat u de tijd neemt om nu aan de vereisten voor GPU-versnelling te voldoen. U moet het installatieproces opnieuw starten als u besluit dat u GPU-versnelling wilt tijdens de installatie.

Ontwikkelhulpprogramma's

Bereid uw doelapparaat voor op de installatie van Azure IoT Edge voor Linux in Windows en de implementatie van de virtuele Linux-machine:

  1. Stel het uitvoeringsbeleid op het doelapparaat AllSignedin op . U kunt het huidige uitvoeringsbeleid controleren in een PowerShell-prompt met verhoogde bevoegdheid met behulp van de volgende opdracht:

    Get-ExecutionPolicy -List
    

    Als het uitvoeringsbeleid local machine niet AllSignedis, kunt u het uitvoeringsbeleid instellen met behulp van:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Zie de powerShell-functiesverwijzing voor meer informatie over de Module Azure IoT Edge voor Linux in Windows PowerShell.

Notitie

TPM 2.0 is vereist wanneer u TPM-attestation gebruikt met de device provisioning-service.

U kunt alleen afzonderlijke, niet groeps- en apparaatinrichtingsserviceinschrijvingen maken wanneer u een TPM gebruikt.

IoT Edge installeren

Implementeer Azure IoT Edge voor Linux in Windows op uw doelapparaat.

Notitie

In het volgende PowerShell-proces wordt beschreven hoe u IoT Edge voor Linux op Windows implementeert op het lokale apparaat. Als u wilt implementeren op een extern doelapparaat met behulp van PowerShell, kunt u Externe PowerShell gebruiken om een verbinding met een extern apparaat tot stand te brengen en deze opdrachten op afstand op dat apparaat uit te voeren.

  1. Voer in een PowerShell-sessie met verhoogde bevoegdheid een van de volgende opdrachten uit, afhankelijk van de architectuur van uw doelapparaat om IoT Edge voor Linux in Windows te downloaden.

    • 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. Installeer IoT Edge voor Linux in Windows op uw apparaat.

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

    U kunt aangepaste IoT Edge voor Linux opgeven in Windows-installatie- en VHDX-mappen door parameters toe te voegen INSTALLDIR="<FULLY_QUALIFIED_PATH>" aan VHDXDIR="<FULLY_QUALIFIED_PATH>" de installatieopdracht. Als u bijvoorbeeld de map D:\EFLOW wilt gebruiken voor installatie en de D:\EFLOW-VHDX voor de VHDX, kunt u de volgende PowerShell-cmdlet gebruiken.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Stel het uitvoeringsbeleid op het doelapparaat AllSigned in op als dit nog niet is gebeurd. Zie de PowerShell-vereisten voor opdrachten om het huidige uitvoeringsbeleid te controleren en het uitvoeringsbeleid in te stellen op AllSigned.

  4. Maak de IoT Edge voor Linux-implementatie in Windows. De implementatie maakt uw virtuele Linux-machine en installeert de IoT Edge-runtime voor u.

    Deploy-Eflow
    

    Fooi

    Deploy-Eflow De opdracht maakt standaard uw virtuele Linux-machine met 1 GB RAM-geheugen, 1 vCPU-kern en 16 GB schijfruimte. De resources die uw VM nodig heeft, zijn echter sterk afhankelijk van de workloads die u implementeert. Als uw VIRTUELE machine onvoldoende geheugen heeft om uw workloads te ondersteunen, kan deze niet worden gestart.

    U kunt de beschikbare resources van de virtuele machine aanpassen met behulp van de optionele parameters van de Deploy-Eflow opdracht. Dit is vereist voor het implementeren van EFLOW op een apparaat met de minimale hardwarevereisten.

    Met de onderstaande opdracht maakt u bijvoorbeeld een virtuele machine met 1 vCPU-kern, 1 GB RAM-geheugen (vertegenwoordigd in MB) en 2 GB schijfruimte:

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

    Zie PowerShell-functies voor IoT Edge voor Linux in Windows voor informatie over alle beschikbare optionele parameters.

    Waarschuwing

    De virtuele EFLOW Linux-machine heeft standaard geen DNS-configuratie. Implementaties die DHCP gebruiken, proberen de DNS-configuratie te verkrijgen die wordt doorgegeven door de DHCP-server. Controleer uw DNS-configuratie om de internetverbinding te garanderen. Zie AzEFLOW-DNS voor meer informatie.

    U kunt een GPU toewijzen aan uw implementatie om MET GPU versnelde Linux-modules in te schakelen. Als u toegang wilt krijgen tot deze functies, moet u de vereisten installeren die worden beschreven in GPU-versnelling voor Azure IoT Edge voor Linux in Windows.

    Als u een GPU-passthrough wilt gebruiken, voegt u de parameters gpuName, gpuPassthroughType en gpuCount toe aan uw Deploy-Eflow opdracht. Zie PowerShell-functies voor IoT Edge voor Linux in Windows voor informatie over alle beschikbare optionele parameters.

    Waarschuwing

    Het inschakelen van passthrough voor hardwareapparaten kan de beveiligingsrisico's verhogen. Microsoft raadt een stuurprogramma voor apparaatbeperking aan bij de leverancier van uw GPU, indien van toepassing. Zie Grafische apparaten implementeren met discrete apparaattoewijzing voor meer informatie.

  5. Voer 'Y' in om de licentievoorwaarden te accepteren.

  6. Voer O of R in om optionele diagnostische gegevens in of uit te schakelen, afhankelijk van uw voorkeur.

  7. Zodra de implementatie is voltooid, wordt de implementatie gerapporteerd in het PowerShell-venster.

    A successful deployment will say 'Deployment successful' at the end of the messages, PNG.

    Na een geslaagde implementatie bent u klaar om uw apparaat in te richten.

Er zijn enkele stappen voor het voorbereiden van uw apparaat voor het inrichten met TPM. Laat uw implementatie open terwijl u uw apparaat voorbereidt. U keert later in het artikel terug naar uw implementatie.

TPM-passthrough inschakelen

De IoT Edge voor Linux op windows-VM heeft een TPM-functie die kan worden ingeschakeld of uitgeschakeld. Deze is standaard uitgeschakeld. Wanneer deze functie is ingeschakeld, heeft de VM toegang tot de TPM van de hostcomputer.

  1. Open PowerShell in een sessie met verhoogde bevoegdheid.

  2. Als u dat nog niet hebt gedaan, stelt u het uitvoeringsbeleid op uw apparaat AllSigned in op zodat u de IoT Edge voor Linux-functies kunt uitvoeren in Windows PowerShell.

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  3. Schakel de TPM-functie in.

    Set-EflowVmFeature -feature 'DpsTpm' -enable
    

De TPM-gegevens ophalen van uw apparaat

Als u uw apparaat wilt inrichten, hebt u een goedkeuringssleutel nodig voor uw TPM-chip en registratie-id voor uw apparaat. U geeft deze informatie op aan uw exemplaar van de device provisioning-service, zodat de service uw apparaat kan herkennen wanneer het verbinding probeert te maken.

De goedkeuringssleutel is uniek voor elke TPM-chip. Het wordt verkregen van de TPM-chipfabrikant die eraan is gekoppeld. U kunt een unieke registratie-id afleiden voor uw TPM-apparaat door bijvoorbeeld een SHA-256-hash van de goedkeuringssleutel te maken.

IoT Edge voor Linux in Windows biedt een PowerShell-script om deze informatie op te halen uit uw TPM. Volg deze stappen op uw apparaat om het script te gebruiken:

  1. Open PowerShell in een sessie met verhoogde bevoegdheid.

  2. Voer de opdracht uit.

    Get-EflowVmTpmProvisioningInfo | Format-List
    

Een apparaatinrichtingsserviceinschrijving maken

Gebruik de inrichtingsgegevens van uw TPM om een afzonderlijke inschrijving te maken in de device provisioning-service.

Wanneer u een inschrijving in de device provisioning-service maakt, hebt u de mogelijkheid om een eerste apparaatdubbelstatus te declareren. In de apparaatdubbel kunt u tags instellen om apparaten te groeperen op basis van alle metrische gegevens die in uw oplossing worden gebruikt, zoals regio, omgeving, locatie of apparaattype. Deze tags worden gebruikt om automatische implementaties te maken.

Fooi

De stappen in dit artikel zijn bedoeld voor Azure Portal, maar u kunt ook afzonderlijke inschrijvingen maken met behulp van de Azure CLI. Zie az iot dps enrollment voor meer informatie. Als onderdeel van de CLI-opdracht gebruikt u de vlag edge om op te geven dat de inschrijving voor een IoT Edge-apparaat is.

  1. Ga in Azure Portal naar uw exemplaar van de IoT Hub-apparaatinrichtingsservice.

  2. Selecteer inschrijvingen beheren onder Instellingen.

  3. Selecteer Afzonderlijke inschrijving toevoegen en voer vervolgens de volgende stappen uit om de inschrijving te configureren:

    1. Selecteer TPM voor Mechanisme.

    2. Geef de goedkeuringssleutel en registratie-id op die u hebt gekopieerd van uw VIRTUELE machine of fysiek apparaat.

    3. Geef desgewenst een id op voor uw apparaat. Als u geen apparaat-id opgeeft, wordt de registratie-id gebruikt.

    4. Selecteer Waar om aan te geven dat uw VIRTUELE machine of fysiek apparaat een IoT Edge-apparaat is.

    5. Kies de gekoppelde IoT-hub waarmee u uw apparaat wilt verbinden of selecteer Koppelen aan nieuwe IoT Hub. U kunt meerdere hubs kiezen en het apparaat wordt toegewezen aan een van deze hubs volgens het geselecteerde toewijzingsbeleid.

    6. Voeg desgewenst een tagwaarde toe aan de eerste apparaatdubbelstatus . U kunt tags gebruiken voor doelgroepen van apparaten voor module-implementatie. Zie IoT Edge-modules op schaal implementeren voor meer informatie.

    7. Selecteer Opslaan.

Nu er een inschrijving voor dit apparaat bestaat, kan de IoT Edge-runtime het apparaat automatisch inrichten tijdens de installatie.

Het apparaat inrichten met de cloudidentiteit

  1. Open een PowerShell-sessie met verhoogde bevoegdheid op het Windows-apparaat.

  2. Richt uw apparaat in met behulp van de bereik-id die u hebt verzameld bij uw exemplaar van de device provisioning-service.

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

    Als u het apparaat hebt ingeschreven met een aangepaste registratie-id, moet u die registratie-id ook opgeven bij het inrichten:

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

Geslaagde installatie controleren

Controleer of IoT Edge voor Linux in Windows is geïnstalleerd en geconfigureerd op uw IoT Edge-apparaat.

Als de runtime is gestart, kunt u naar uw IoT-hub gaan en Beginnen met het implementeren van IoT Edge-modules op uw apparaat.

U kunt controleren of de afzonderlijke inschrijving die u in de device provisioning service hebt gemaakt, is gebruikt. Ga naar uw exemplaar van de device provisioning service in Azure Portal. Open de inschrijvingsgegevens voor de afzonderlijke inschrijving die u hebt gemaakt. U ziet dat de status van de inschrijving is toegewezen en dat de apparaat-id wordt vermeld.

Gebruik de volgende opdrachten op uw apparaat om te controleren of ioT Edge is geïnstalleerd en gestart.

  1. Verbinding maken naar uw IoT Edge voor Linux op Windows-VM met behulp van de volgende opdracht in uw PowerShell-sessie:

    Connect-EflowVm
    

    Notitie

    Het enige account dat is toegestaan voor SSH naar de VIRTUELE machine, is de gebruiker die deze heeft gemaakt.

  2. Nadat u bent aangemeld, kunt u de lijst met actieve IoT Edge-modules controleren met behulp van de volgende Linux-opdracht:

    sudo iotedge list
    
  3. Als u problemen met de IoT Edge-service wilt oplossen, gebruikt u de volgende Linux-opdrachten.

    1. Als u problemen met de service moet oplossen, haalt u de servicelogboeken op.

      sudo iotedge system logs
      
    2. Gebruik het hulpprogramma om de check configuratie- en verbindingsstatus van het apparaat te controleren.

      sudo iotedge check
      

    Notitie

    Op een nieuw ingericht apparaat ziet u mogelijk een fout met betrekking tot IoT Edge Hub:

    × productiegereedheid: de opslagmap van Edge Hub blijft behouden in het hostbestandssysteem - Fout

    Kan de huidige status van de EdgeHub-container niet controleren

    Deze fout wordt verwacht op een nieuw ingericht apparaat omdat de IoT Edge Hub-module niet wordt uitgevoerd. Als u de fout wilt oplossen, stelt u in IoT Hub de modules voor het apparaat in en maakt u een implementatie. Als u een implementatie voor het apparaat maakt, worden de modules op het apparaat gestart, inclusief de IoT Edge Hub-module.

IoT Edge voor Linux verwijderen in Windows

Als u de Installatie van Azure IoT Edge voor Linux op Windows wilt verwijderen van uw apparaat, gebruikt u de volgende opdrachten.

  1. Instellingen openen in Windows
  2. Programma's toevoegen of verwijderen selecteren
  3. Azure IoT Edge-app selecteren
  4. Verwijderen selecteren

Volgende stappen

Met het registratieproces van de device provisioning service kunt u de apparaat-id en apparaatdubbeltags instellen op hetzelfde moment als u het nieuwe apparaat inricht. U kunt deze waarden gebruiken om afzonderlijke apparaten of groepen apparaten te richten met behulp van automatisch apparaatbeheer.

Leer hoe u IoT Edge-modules op schaal implementeert en bewaakt met behulp van Azure Portal of de Azure CLI.