Aggiornare IoT Edge

Si applica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 è la versione supportata. Se si usa una versione precedente, vedere Aggiornare IoT Edge.

Con la disponibilità di versioni sempre nuove del servizio IoT Edge, aggiornare i dispositivi IoT Edge per le funzionalità ed i miglioramenti della sicurezza più recenti. Questo articolo fornisce informazioni su come aggiornare i dispositivi IoT Edge quando è disponibile una nuova versione.

Se si vuole passare a una versione più recente, è necessario aggiornare due componenti logici di un dispositivo IoT Edge.

  • Sottosistema di sicurezza: anche se l'architettura del sottosistema di sicurezza è cambiata tra la versione 1.1 e la 1.2, le sue responsabilità rimangono invariate. Viene eseguito nel dispositivo, gestisce le attività basate sulla sicurezza e avvia i moduli all'avvio del dispositivo. Il sottosistema di sicurezza può essere aggiornato solo dal dispositivo stesso.

  • Runtime di IoT Edge: il runtime di IoT Edge è costituito dai moduli dell'hub IoT Edge (edgeHub) e dell'agente IoT Edge (edgeAgent). A seconda della struttura della distribuzione, il runtime può essere aggiornato dal dispositivo o in remoto.

Come eseguire l'aggiornamento

Usare le sezioni di questo articolo per aggiornare sia il sottosistema di sicurezza che i contenitori di runtime in un dispositivo.

Versioni patch

Quando si esegue l'aggiornamento tra le versioni patch , ad esempio da 1.4.1 a 1.4.2, l'ordine di aggiornamento non è importante. È possibile aggiornare il sottosistema di sicurezza o i contenitori di runtime prima o dopo l'altro. Per eseguire l'aggiornamento tra le versioni patch:

  1. Aggiornare il sottosistema di sicurezza
  2. Aggiornare i contenitori di runtime
  3. Verificare la corrispondenza delle versioni

È possibile risolvere i problemi del processo di aggiornamento in qualsiasi momento.

Versioni principali o secondarie

Quando si esegue l'aggiornamento tra le versioni principali o secondarie, ad esempio dalla versione 1.1 alla 1.4, aggiornare sia il sottosistema di sicurezza che i contenitori di runtime. Prima di una versione, viene testato il sottosistema di sicurezza e la combinazione di versione del contenitore di runtime. Per eseguire l'aggiornamento tra le versioni principali o secondarie del prodotto:

  1. Nel dispositivo arrestare IoT Edge usando il comando sudo systemctl stop iotedge e la disinstallazione.

  2. Nel dispositivo aggiornare il motore del contenitore, Docker o Moby.

  3. Nel dispositivo installare IoT Edge.

    Se si importa una configurazione precedente usando iotedge config import, modificare l'immagine [agent.config] del file generato /etc/aziot/config.toml per usare l'immagine 1.4 per edgeAgent.

    Per altre informazioni, vedere Configurare le impostazioni del dispositivo IoT Edge.

  4. In hub IoT aggiornare la distribuzione del modulo per fare riferimento ai moduli di sistema più recenti.

  5. Nel dispositivo avviare IoT Edge usando sudo iotedge config apply.

È possibile risolvere i problemi del processo di aggiornamento in qualsiasi momento.

Aggiornare il sottosistema di sicurezza

Il sottosistema di sicurezza IoT Edge include un set di componenti nativi che devono essere aggiornati usando la gestione pacchetti nel dispositivo IoT Edge.

Controllare la versione del sottosistema di sicurezza in esecuzione nel dispositivo usando il comando iotedge version. Se si usa IoT Edge per Linux in Windows, è necessario eseguire SSH nella macchina virtuale Linux per verificare la versione.

Importante

Se si aggiorna un dispositivo dalla versione 1.0 o 1.1 alla versione più recente, esistono differenze nei processi di installazione e configurazione che richiedono passaggi aggiuntivi. Per altre informazioni, vedere i passaggi descritti più avanti in questo articolo: Caso speciale: Aggiornamento dalla versione 1.0 o 1.1 alla versione più recente.

Nei dispositivi Linux x64 usare apt-get o lo strumento di gestione pacchetti appropriato per aggiornare il sottosistema di sicurezza alla versione più recente.

Aggiornare apt:

sudo apt-get update

Nota

Per istruzioni su come ottenere la configurazione più recente del repository da Microsoft, vedere i passaggi preliminari per installare IoT Edge.

Verificare quali versioni di IoT Edge sono disponibili:

apt list -a aziot-edge

Aggiornare IoT Edge:

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

L'esecuzione apt-get install aziot-edge di aggiorna il sottosistema di sicurezza e installa il servizio di identità, aziot-identity-service, come dipendenza necessaria.

È consigliabile installare il micro agente con l'agente Edge per abilitare il monitoraggio della sicurezza e la protezione avanzata dei dispositivi Perimetrali. Per altre informazioni su Microsoft Defender per IoT, vedere Che cos'è Microsoft Defender per IoT per i generatori di dispositivi.

Quindi, riapplicare la configurazione per assicurarsi che il sistema sia completamente aggiornato.

sudo iotedge config apply

Aggiornare i contenitori del runtime

Il modo in cui si aggiorna l'agente IoT Edge e i contenitori dell'hub IoT Edge dipende dal fatto che si usino tag in sequenza (ad esempio 1.1) o tag specifici (ad esempio 1.1.1) nella distribuzione.

Controllare la versione dei moduli dell'agente IoT Edge e dell'hub di IoT Edge attualmente presenti nel dispositivo usando i comandi iotedge logs edgeAgent o iotedge logs edgeHub. Se si usa IoT Edge per Linux in Windows, è necessario eseguire SSH nella macchina virtuale Linux per controllare le versioni del modulo di runtime.

Screenshot of where to find the container version in console logs.

Informazioni sui tag di IoT Edge

Le immagini dell'agente IoT Edge e dell'hub IoT Edge sono contrassegnate con la versione di IoT Edge a cui sono associati. Esistono due diversi modi per usare i tag con le immagini di runtime:

  • Tag di versioni. Vengono usati solo i primi due valori del numero di versione per ottenere l'immagine più recente corrispondente a tali cifre. Ad esempio, il tag 1.1 viene aggiornato ogni volta che è disponibile una nuova versione in modo da puntare alla versione 1.1.x più recente. Se il runtime del contenitore nel dispositivo IoT Edge esegue nuovamente il pull dell'immagine, i moduli del runtime vengono aggiornati alla versione più recente. Nelle distribuzioni dal portale di Azure vengono usati i tag di versioni per impostazione predefinita. Questo approccio è consigliato a scopo di sviluppo.

  • Tag specifici. Vengono usati tutti e tre i valori del numero di versione per impostare in modo esplicito la versione dell'immagine. Ad esempio, il tag 1.1.0 non verrà modificato dopo il rilascio iniziale. Quando si è pronti per l'aggiornamento, è possibile dichiarare un nuovo numero di versione nel manifesto della distribuzione. Questo approccio è consigliato a scopo di produzione.

Aggiornare un'immagine con tag di versioni

Se si usano tag in sequenza nella distribuzione (ad esempio, mcr.microsoft.com/azureiotedge-hub:1.1), è necessario forzare il runtime del contenitore nel dispositivo per eseguire il pull della versione più recente dell'immagine.

Eliminare la versione locale dell'immagine dal dispositivo IoT Edge. Nei computer Windows, la disinstallazione del sottosistema di sicurezza rimuove anche le immagini di runtime, quindi non è necessario eseguire di nuovo questo passaggio.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Potrebbe essere necessario usare il flag force -f per rimuovere le immagini.

Il servizio IoT Edge esegue il pull delle versioni più recenti delle immagini di runtime e le avvia automaticamente nel dispositivo.

Aggiornare un'immagine con tag specifici

Se si usano tag specifici nella distribuzione (ad esempio, mcr.microsoft.com/azureiotedge-hub:1.4), è sufficiente aggiornare il tag nel manifesto della distribuzione e applicare le modifiche al dispositivo.

  1. Nella hub IoT nel portale di Azure selezionare il dispositivo IoT Edge e selezionare Imposta moduli.

  2. Nella scheda Moduli selezionare Runtime Impostazioni.

    Screenshot that shows location of the Runtime Settings tab.

  3. In Runtime Impostazioni aggiornare il valore dell'URI dell'immagine nella sezione Agente Edge con la versione desiderata. Non selezionare ancora Applica .

    Screenshot that shows where to update the image URI with your version in the Edge Agent.

  4. Selezionare la scheda Hub Edge e aggiornare il valore dell'URI dell'immagine con la stessa versione desiderata.

    Screenshot that shows where to update the image URI with your version in the Edge Hub.

  5. Selezionare Applica per salvare le modifiche.

  6. Selezionare Rivedi e crea, esaminare la distribuzione come illustrato nel file JSON e selezionare Crea.

Verificare la corrispondenza delle versioni

  1. Nel dispositivo usare iotedge version per controllare la versione del sottosistema di sicurezza. L'output include i numeri di versione principale, secondaria e di revisione. Ad esempio, iotedge 1.4.2.

  2. Nelle impostazioni del runtime di distribuzione del dispositivo verificare che le versioni dell'URI dell'immagine edgeHub e edgeAgent corrispondano alla versione principale e secondaria del sottosistema di sicurezza. Se la versione del sottosistema di sicurezza è 1.4.2, le versioni dell'immagine saranno 1.4. Ad esempio, mcr.microsoft.com/azureiotedge-hub:1.4 e mcr.microsoft.com/azureiotedge-agent:1.4.

Nota

Aggiornare il sottosistema di sicurezza di IoT Edge e i contenitori di runtime alla stessa versione supportata. Anche se le versioni non corrispondenti sono supportate, non sono state testate tutte le combinazioni di versioni.

Per trovare la versione più recente di Azure IoT Edge, fare riferimento alle versioni di Azure IoT Edge.

Caso speciale: aggiornamento dalla versione 1.0 o 1.1 alla versione più recente

A partire dalla versione 1.2, il servizio IoT Edge usa un nuovo nome del pacchetto e presenta alcune differenze nei processi di installazione e configurazione. Se si dispone di un dispositivo IoT Edge che esegue la versione 1.0 o 1.1, usare queste istruzioni per informazioni su come eseguire l'aggiornamento alla versione più recente.

Alcune delle differenze principali tra la versione più recente e la versione 1.1 e precedenti includono:

  • Il nome del pacchetto è cambiato da iotedge a aziot-edge.
  • Il pacchetto libiothsm-std non viene più usato. Se è stato usato il pacchetto standard fornito come parte della versione di IoT Edge, le configurazioni possono essere trasferite alla nuova versione. Se è stata usata un'implementazione diversa di libiothsm-std, è necessario riconfigurare tutti i certificati forniti dall'utente, ad esempio il certificato di identità del dispositivo, la CA del dispositivo e il bundle di attendibilità.
  • È stato introdotto un nuovo servizio di gestione delle identità, aziot-identity-service nell'ambito della versione 1.2. Questo servizio gestisce il provisioning e la gestione delle identità per IoT Edge e per altri componenti del dispositivo che devono comunicare con hub IoT, ad esempio Aggiornamento dispositivi per hub IoT.
  • Il file di configurazione predefinito ha un nuovo nome e un nuovo percorso. In precedenza /etc/iotedge/config.yaml, le informazioni di configurazione del dispositivo saranno ora incluse per /etc/aziot/config.toml impostazione predefinita. Il iotedge config import comando può essere usato per eseguire la migrazione delle informazioni di configurazione dalla posizione precedente e dalla sintassi a quella nuova.
    • Il comando di importazione non è in grado di rilevare o modificare le regole di accesso al modulo TPM (Trusted Platform Module) di un dispositivo. Se il dispositivo usa l'attestazione TPM, è necessario aggiornare manualmente il file /etc/udev/rules.d/tpmaccess.rules per concedere l'accesso al servizio aziottpm. Per altre informazioni, vedere Concedere a IoT Edge l'accesso al TPM.
  • L'API del carico di lavoro nella versione più recente salva i segreti crittografati in un nuovo formato. Se si esegue l'aggiornamento da una versione precedente alla versione più recente, viene importata la chiave di crittografia master esistente. L'API del carico di lavoro può leggere i segreti salvati nel formato precedente usando la chiave di crittografia importata. Tuttavia, l'API del carico di lavoro non può scrivere segreti crittografati nel formato precedente. Una volta che un modulo crittografa nuovamente un segreto, viene salvato nel nuovo formato. I segreti crittografati nella versione più recente sono illeggibili dallo stesso modulo nella versione 1.1. Se si salvano in modo permanente i dati crittografati in una cartella o in un volume montato su host, creare sempre una copia di backup dei dati prima dell'aggiornamento per mantenere la possibilità di effettuare il downgrade, se necessario.
  • Per garantire la compatibilità con le versioni precedenti quando si connettono dispositivi che non supportano TLS 1.2, è possibile configurare l'hub Edge per accettare ancora TLS 1.0 o 1.1 tramite la variabile di ambiente SslProtocols. Il supporto per TLS 1.0 e 1.1 in hub IoT è considerato legacy e può anche essere rimosso dall'hub Edge nelle versioni future.  Per evitare problemi futuri, usare TLS 1.2 come unica versione TLS durante la connessione all'hub Edge o hub IoT.
  • L'anteprima per il broker MQTT sperimentale nell'hub edge 1.2 è terminata e non è inclusa nell'hub edge 1.4. Stiamo continuando a perfezionare i nostri piani per un broker MQTT in base al feedback ricevuto. Nel frattempo, se è necessario un broker MQTT conforme agli standard in IoT Edge, valutare la possibilità di distribuire un broker open source come Mosquitto come modulo IoT Edge.
  • A partire dalla versione 1.2, quando un'immagine di backup viene rimossa da un contenitore, il contenitore continua a essere in esecuzione e viene mantenuto tra i riavvii. Nella versione 1.1, quando viene rimossa un'immagine di supporto, il contenitore viene ricreato immediatamente e l'immagine di supporto viene aggiornata.

Prima di automatizzare i processi di aggiornamento, verificare che funzioni nei computer di test.

Quando si è pronti, seguire questa procedura per aggiornare IoT Edge nei dispositivi:

  1. Aggiornare apt.

    sudo apt-get update
    
  2. Disinstallare la versione precedente di IoT Edge, lasciando i file di configurazione sul posto.

    sudo apt-get remove iotedge
    
  3. Installare la versione più recente di IoT Edge, insieme al servizio di gestione delle identità IoT e all'agente micro di Microsoft Defender per IoT per Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

È consigliabile installare il micro agente con l'agente Edge per abilitare il monitoraggio della sicurezza e la protezione avanzata dei dispositivi Perimetrali. Per altre informazioni su Microsoft Defender per IoT, vedere Che cos'è Microsoft Defender per IoT per i generatori di dispositivi.

  1. Importare il file config.yaml precedente nel nuovo formato e applicare le informazioni di configurazione.

    sudo iotedge config import
    

Ora che il servizio IoT Edge più recente è in esecuzione nei dispositivi, è anche necessario aggiornare i contenitori di runtime alla versione più recente. Il processo di aggiornamento per i contenitori di runtime è lo stesso del processo di aggiornamento per il servizio IoT Edge.

Risoluzione dei problemi

È possibile visualizzare i log del sistema in qualsiasi momento eseguendo i comandi seguenti dal dispositivo.

  • Iniziare a risolvere i problemi usando il comando check . Esegue una raccolta di test di configurazione e connettività per problemi comuni.

    sudo iotedge check --verbose
    
  • Per visualizzare lo stato del sistema IoT Edge, eseguire:

    sudo iotedge system status 
    
  • Per visualizzare i log dei componenti host, eseguire:

    sudo iotedge system logs
    
  • Per verificare la presenza di problemi ricorrenti segnalati con edgeAgent e edgeHub, eseguire:

    Assicurarsi di sostituire <module> con il nome del modulo. Se non sono presenti problemi, non viene visualizzato alcun output.

    sudo iotedge logs <module>
    

Per altre informazioni, vedere Risolvere i problemi del dispositivo IoT Edge.

Passaggi successivi

Visualizzare le versioni di Azure IoT Edge più recenti.

Rimanere aggiornati con gli aggiornamenti e gli annunci recenti nel blog internet delle cose