Condividi tramite


Creare e effettuare il provisioning di IoT Edge per Linux nei dispositivi Windows su larga scala usando chiavi simmetriche

Si applicaall'icona:sì IoT Edge 1.1

Importante

IoT Edge 1,1 data di fine del supporto è stata il 13 dicembre 2022. Controlla il ciclo di vita dei prodotti Microsoft per ottenere informazioni sul modo in cui viene supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.

Questo articolo fornisce istruzioni end-to-end per la creazione automatica di uno o più IoT Edge per Linux nei dispositivi Windows usando chiavi simmetriche. È possibile effettuare automaticamente il provisioning dei dispositivi di Azure IoT Edge con il servizio di provisioning dei dispositivi hub IoT di Azure. Se non si ha familiarità con il processo di autoprovisioning, esaminare la panoramica del provisioning prima di continuare.

Le attività sono le seguenti:

  1. Creare una singola registrazione per un singolo dispositivo o una registrazione di gruppo per un set di dispositivi.
  2. Distribuire una macchina virtuale Linux con il runtime di IoT Edge installato e connetterlo all'hub IoT.

L'attestazione della chiave simmetrica è un approccio semplice per autenticare un dispositivo con un'istanza del servizio di provisioning del dispositivo. Questo metodo di attestazione rappresenta un'esperienza di "Hello World" per gli sviluppatori che non hanno familiarità con il provisioning dei dispositivi o che non possiedono requisiti di sicurezza restrittivi. L'attestazione del dispositivo usando un TPM o un certificato X.509 è più sicura e deve essere usata per requisiti di sicurezza più rigorosi.

Prerequisiti

Risorse cloud

  • Un hub IoT attivo
  • Istanza del servizio di provisioning dei dispositivi di hub IoT in Azure, collegata all'hub IoT
    • Se non si dispone di un'istanza del servizio di provisioning dei dispositivi, è possibile seguire le istruzioni riportate nella guida introduttiva Creare un nuovo servizio di provisioning dei dispositivi hub IoT e collegare l'hub IoT e le sezioni del servizio di provisioning dei dispositivi dell'hub IoT servizio di provisioning dei dispositivi.
    • Dopo aver eseguito il servizio di provisioning del dispositivo, copiare il valore dell'ambito ID dalla pagina di panoramica. Questo valore viene usato quando si configura il runtime IoT Edge.

Requisiti dei dispositivi

Un dispositivo Windows con i requisiti minimi seguenti:

  • Requisiti di sistema

    • Windows 10 1/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 e Windows Server 2019 build minima 17763 con tutti gli aggiornamenti cumulativi correnti installati.
  • Requisiti hardware

    • Memoria minima gratuita: 1 GB
    • Spazio su disco minimo: 10 GB
  • Supporto per la virtualizzazione

  • Supporto per la rete

    • Windows Server non è disponibile con un commutatore predefinito. Prima di poter distribuire EFLOW in un dispositivo Windows Server, è necessario creare un commutatore virtuale. Per altre informazioni, vedere Creare un commutatore virtuale per Linux in Windows.
    • Le versioni di Windows Desktop sono disponibili con un commutatore predefinito che può essere usato per l'installazione di EFLOW. Se necessario, è possibile creare un commutatore virtuale personalizzato.

Suggerimento

Se si desidera usare moduli Linux con accelerazione GPU nella distribuzione di Azure IoT Edge per Linux in Windows, sono disponibili diverse opzioni di configurazione da considerare.

È necessario installare i driver corretti a seconda dell'architettura della GPU e potrebbe essere necessario accedere a una compilazione di Windows Insider Program. Per determinare le esigenze di configurazione e soddisfare questi prerequisiti, vedere Accelerazione GPU per Azure IoT Edge per Linux in Windows.

Assicurarsi di richiedere il tempo necessario per soddisfare i prerequisiti per l'accelerazione GPU. È necessario riavviare il processo di installazione se si decide di voler accelerare la GPU durante l'installazione.

Strumenti per sviluppatori

È possibile usare PowerShell o Windows Admin Center per gestire i dispositivi IoT Edge. Ogni utilità ha i propri prerequisiti:

Se si vuole usare PowerShell, seguire questa procedura per preparare il dispositivo di destinazione per l'installazione di Azure IoT Edge per Linux in Windows e la distribuzione della macchina virtuale Linux:

  1. Impostare i criteri di esecuzione nel dispositivo di destinazione su AllSigned. È possibile controllare i criteri di esecuzione correnti in un prompt di PowerShell con privilegi elevati usando il comando seguente:

    Get-ExecutionPolicy -List
    

    Se il criterio di esecuzione di non AllSignedè , è possibile impostare i criteri di local machine esecuzione usando:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Per altre informazioni sul modulo azure IoT Edge per Linux in Windows PowerShell, vedere il riferimento alle funzioni di PowerShell.

Creare una registrazione nel servizio Device Provisioning

Creare una registrazione per effettuare il provisioning di uno o più dispositivi tramite DPS.

Se si vuole effettuare il provisioning di un singolo dispositivo IoT Edge, creare una singola registrazione. Se sono necessari più dispositivi di cui è stato effettuato il provisioning, seguire la procedura per la creazione di una registrazione del gruppo DPS.

Quando si crea una registrazione in DPS, è possibile dichiarare uno stato iniziale del dispositivo gemello. Nel dispositivo gemello è possibile impostare tag per raggruppare i dispositivi in base a una qualsiasi metrica necessaria nella propria soluzione, come l'area, l'ambiente, la località o il tipo di dispositivo. Questi tag vengono usati per creare distribuzioni automatiche.

Per altre informazioni sulle registrazioni nel servizio di provisioning dei dispositivi, vedere Come gestire le registrazioni dei dispositivi.

Creare una registrazione singola di DPS

Suggerimento

I passaggi descritti in questo articolo sono relativi alla portale di Azure, ma è anche possibile creare singole registrazioni usando l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere az iot dps enrollment.For more information, see az iot dps enrollment. Come parte del comando dell'interfaccia della riga di comando, usare il flag abilitato per edge per specificare che la registrazione è per un dispositivo IoT Edge.

  1. Nella portale di Azure passare all'istanza di hub IoT servizio di provisioning dei dispositivi.

  2. In le impostazioni selezionare Gestisci registrazioni.

  3. Selezionare Aggiungi registrazione singola, quindi completare la procedura seguente per configurare la registrazione:

    1. Per Meccanismo selezionare Chiave simmetrica.

    2. Specificare un ID di registrazione univoco per il dispositivo.

    3. Facoltativamente, specificare un ID dispositivo hub IoT per il dispositivo. È possibile usare gli ID dispositivo per identificare come destinazione un singolo dispositivo per la distribuzione di moduli. Se non si specifica un ID dispositivo, viene usato l'ID di registrazione.

    4. Selezionare True per dichiarare che la registrazione è per un dispositivo IoT Edge.

    5. Facoltativamente, aggiungere un valore di tag allo stato iniziale del dispositivo gemello. È possibile usare tag per identificare come destinazione gruppi di dispositivi per la distribuzione di moduli. Ad esempio:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Selezionare Salva.

  4. Copiare il valore della chiave primaria della registrazione per l'uso durante l'installazione del runtime di IoT Edge.

Ora che esiste una registrazione per questo dispositivo, il runtime di IoT Edge può effettuare automaticamente il provisioning del dispositivo durante l'installazione.

Installare IoT Edge

Distribuire Azure IoT Edge per Linux in Windows nel dispositivo di destinazione.

Installare IoT Edge per Linux in Windows nel dispositivo di destinazione.

Nota

Il processo di PowerShell seguente illustra come distribuire IoT Edge per Linux in Windows nel dispositivo locale. Per distribuire in un dispositivo di destinazione remota con PowerShell, è possibile usare Remote PowerShell per stabilire una connessione a un dispositivo remoto ed eseguire questi comandi in remoto nel dispositivo.

  1. In una sessione di PowerShell con privilegi elevati eseguire ognuno dei comandi seguenti per scaricare IoT Edge per Linux in Windows.

    $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
    $ProgressPreference = 'SilentlyContinue'
    Invoke-WebRequest "https://aka.ms/AzEflowMSI" -OutFile $msiPath
    
  2. Installare IoT Edge per Linux in Windows nel dispositivo.

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

    È possibile specificare IoT Edge personalizzati per Linux per l'installazione di Windows e le directory VHDX aggiungendo INSTALLDIR="<FULLY_QUALIFIED_PATH>" e VHDXDIR="<FULLY_QUALIFIED_PATH>" parametri al comando di installazione. Ad esempio, se si vuole usare la cartella D:\EFLOW per l'installazione e la D:\EFLOW-VHDX per VHDX , è possibile usare il cmdlet di PowerShell seguente.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Impostare i criteri di esecuzione nel dispositivo di destinazione su AllSigned se non è già presente. Vedere i prerequisiti di PowerShell per i comandi per controllare i criteri di esecuzione correnti e impostare i criteri di esecuzione su AllSigned.

  4. Creare la IoT Edge per Linux nella distribuzione di Windows. La distribuzione crea la macchina virtuale Linux e installa il runtime di IoT Edge per l'utente.

    Deploy-Eflow
    

    Suggerimento

    Per impostazione predefinita, il Deploy-Eflow comando crea la macchina virtuale Linux con 1 GB di RAM, 1 core vCPU e 16 GB di spazio su disco. Tuttavia, le risorse necessarie per la macchina virtuale dipendono in modo elevato dai carichi di lavoro distribuiti. Se la macchina virtuale non dispone di memoria sufficiente per supportare i carichi di lavoro, non verrà avviata.

    È possibile personalizzare le risorse disponibili della macchina virtuale usando Deploy-Eflow i parametri facoltativi del comando.

    Ad esempio, il comando seguente crea una macchina virtuale con 4 core vCPU, 4 GB di RAM (rappresentati in MB) e 20 GB di spazio su disco:

    Deploy-Eflow -cpuCount 4 -memoryInMB 4096 -vmDiskSize 20
    

    Per informazioni su tutti i parametri facoltativi disponibili, vedere Funzioni di PowerShell per IoT Edge per Linux in Windows.

    Avviso

    Per impostazione predefinita, la macchina virtuale EFLOW Linux non ha alcuna configurazione DNS. Le distribuzioni che usano DHCP tenteranno di ottenere la configurazione DNS propagata dal server DHCP. Controllare la configurazione DNS per garantire la connettività Internet. Per altre informazioni, vedere AzEFLOW-DNS.

    È possibile assegnare una GPU alla distribuzione per abilitare moduli Linux accelerati dalla GPU. Per ottenere l'accesso a queste funzionalità, è necessario installare i prerequisiti dettagliati nell'accelerazione GPU per Azure IoT Edge per Linux in Windows.

    Per usare un pass-through GPU, aggiungere i parametri gpuName, gpuPass throughType e gpuCount al Deploy-Eflow comando. Per informazioni su tutti i parametri facoltativi disponibili, vedere Funzioni di PowerShell per IoT Edge per Linux in Windows.

    Avviso

    L'abilitazione del pass-through del dispositivo hardware può aumentare i rischi di sicurezza. Microsoft consiglia un driver di mitigazione dei dispositivi dal fornitore della GPU, se applicabile. Per altre informazioni, vedere Distribuire dispositivi grafici usando l'assegnazione di dispositivi discreti.

  5. Immettere 'Y' per accettare le condizioni di licenza.

  6. Immettere 'O' o 'R' per attivare o disattivare i dati di diagnostica facoltativi , a seconda delle preferenze.

  7. Al termine della distribuzione, la finestra di PowerShell segnala l'esito positivo della distribuzione.

    Una distribuzione riuscita dirà

    Dopo una distribuzione riuscita, è possibile effettuare il provisioning del dispositivo.

Effettuare il provisioning del dispositivo con la relativa identità cloud

Dopo aver installato il runtime nel dispositivo, configurare il dispositivo con le informazioni usate per connettersi al servizio device provisioning e hub IoT.

Preparare le informazioni seguenti:

  • Valore ambito ID DPS
  • ID registrazione del dispositivo creato
  • Chiave primaria da una registrazione singola o una chiave derivata per i dispositivi che usano una registrazione di gruppo.

È possibile usare PowerShell o Windows Admin Center per effettuare il provisioning del dispositivo IoT Edge.

Per PowerShell, eseguire il comando seguente con i valori segnaposto aggiornati con i propri valori:

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

Verificare l'esito positivo dell'installazione

Verificare che IoT Edge per Linux in Windows sia stato installato e configurato correttamente nel dispositivo IoT Edge.

È possibile verificare che sia stata usata la registrazione singola creata nel servizio device provisioning. Passare all'istanza del servizio device provisioning nel portale di Azure. Aprire i dettagli della registrazione per la registrazione singola creata. Si noti che lo stato della registrazione viene assegnato e che l'ID dispositivo è elencato.

  1. Accedere al IoT Edge per Linux nella macchina virtuale Windows usando il comando seguente nella sessione di PowerShell:

    Connect-EflowVm
    

    Nota

    L'unico account autorizzato a connettersi tramite SSH alla macchina virtuale è l'utente che lo ha creato.

  2. Dopo aver eseguito l'accesso, è possibile controllare l'elenco dei moduli IoT Edge in esecuzione usando il comando Linux seguente:

    sudo iotedge list
    
  3. Se è necessario risolvere i problemi del servizio IoT Edge, usare i comandi Linux seguenti.

    1. Recuperare i log del servizio.

      sudo journalctl -u iotedge
      
    2. Usare lo check strumento per verificare lo stato di configurazione e connessione del dispositivo.

      sudo iotedge check
      

    Nota

    In un dispositivo di cui è stato appena effettuato il provisioning, è possibile che venga visualizzato un errore correlato a IoT Edge Hub:

    × conformità alla produzione: la directory di archiviazione dell'hub Edge è persistente nel file system host - Errore

    Impossibile controllare lo stato corrente del contenitore edgeHub

    Questo errore è previsto in un dispositivo di cui è stato appena effettuato il provisioning perché il modulo IoT Edge Hub non è in esecuzione. Per risolvere l'errore, in hub IoT impostare i moduli per il dispositivo e creare una distribuzione. La creazione di una distribuzione per il dispositivo avvia i moduli nel dispositivo, incluso il modulo IoT Edge Hub.

Quando si crea un nuovo dispositivo IoT Edge, il codice 417 -- The device's deployment configuration is not set di stato verrà visualizzato nel portale di Azure. Questo stato è normale e significa che il dispositivo è pronto per ricevere una distribuzione del modulo.

Disinstallare IoT Edge per Linux in Windows

Se si vuole rimuovere l'installazione di Azure IoT Edge per Linux in Windows dal dispositivo, usare i comandi seguenti.

  1. Apri impostazioni in Windows
  2. Selezionare Installazione applicazioni
  3. Selezionare l'app Azure IoT Edge LTS
  4. Selezionare Disinstalla

Passaggi successivi

Il processo di registrazione del servizio device provisioning consente di impostare l'ID dispositivo e i tag del dispositivo gemello contemporaneamente durante il provisioning del nuovo dispositivo. È possibile usare questi valori per identificare come destinazione singoli dispositivi o gruppi di dispositivi usando la gestione automatica dei dispositivi. Informazioni su come distribuire e monitorare i moduli IoT Edge su larga scala usando il portale di Azure o l'interfaccia dellariga di comando di Azure.

È anche possibile: