Esercitazione: Aggiornamento del dispositivo per hub IoT di Azure usando l'agente del pacchetto in Ubuntu Server 18.04 x64
Aggiornamento del dispositivo per hub IoT di Azure supporta aggiornamenti basati su immagini, basati su pacchetti e basati su script.
Gli aggiornamenti basati su pacchetti sono aggiornamenti mirati che modificano solo un componente o un'applicazione specifici nel dispositivo. Determinano un consumo inferiore della larghezza di banda e consentono di ridurre il tempo necessario per scaricare e installare l'aggiornamento. Gli aggiornamenti basati su pacchetti consentono in genere un minor tempo di inattività dei dispositivi quando si applica un aggiornamento ed evitare il sovraccarico della creazione di immagini. Usano un manifesto APT, che fornisce all'agente Device Update le informazioni necessarie per scaricare e installare i pacchetti specificati nel file manifesto APT (e le relative dipendenze) da un repository designato.
Questa esercitazione illustra come aggiornare Azure IoT Edge in Ubuntu Server 18.04 x64 usando l'agente del pacchetto Aggiornamento dispositivi. Anche se l'esercitazione illustra l'aggiornamento IoT Edge, usando passaggi simili è possibile aggiornare altri pacchetti, ad esempio il motore di contenitori usato.
Gli strumenti e i concetti di questa esercitazione si applicano ancora anche se si prevede di usare una configurazione diversa della piattaforma del sistema operativo. Completare questa introduzione a un processo di aggiornamento end-to-end. Scegliere quindi la forma preferita per aggiornare una piattaforma del sistema operativo per approfondire i dettagli.
In questa esercitazione si apprenderà come:
- Scaricare e installare l'agente di Aggiornamento dispositivi e le relative dipendenze.
- Aggiungere un tag al dispositivo.
- Importare un aggiornamento.
- Creare un gruppo di dispositivi.
- Distribuire un aggiornamento del pacchetto.
- Monitorare la distribuzione degli aggiornamenti.
Prerequisiti
Se non è già stato fatto, creare un account e un'istanza di Aggiornamento dispositivi. Configurare un hub IoT.
È necessaria la stringa di connessione per un dispositivo IoT Edge.
Se è stata usata l'esercitazione sull'agente simulatore per i test precedenti, eseguire il comando seguente per richiamare il gestore APT e distribuire gli aggiornamenti del pacchetto over-the-air in questa esercitazione:
# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
Preparare un dispositivo
Preparare un dispositivo automaticamente o manualmente.
Usare il pulsante Distribuisci automatizzato in Azure
Per praticità, questa esercitazione usa un modello di Azure Resource Manager basato su cloud per semplificare la configurazione di una macchina virtuale Ubuntu 18.04 LTS. Installa sia il runtime di Azure IoT Edge che l'agente del pacchetto di Aggiornamento dispositivi. Configura quindi automaticamente il dispositivo con le informazioni di provisioning usando la stringa di connessione del dispositivo per un dispositivo IoT Edge (prerequisito) fornito. Il modello di Resource Manager evita inoltre la necessità di avviare una sessione SSH per completare la configurazione.
Per iniziare, selezionare il pulsante:
Compilare le caselle di testo disponibili:
- Sottoscrizione: sottoscrizione di Azure attiva in cui distribuire la macchina virtuale.
- Gruppo di risorse: gruppo di risorse esistente o appena creato per contenere la macchina virtuale e le relative risorse associate.
- Area: area geografica in cui distribuire la macchina virtuale. Questo valore viene impostato per impostazione predefinita sulla posizione del gruppo di risorse selezionato.
- Prefisso etichetta DNS: valore obbligatorio della scelta usata per anteporre il nome host della macchina virtuale.
- Amministrazione Nome utente: nome utente, che fornisce privilegi radice per la distribuzione.
- Stringa di connessione del dispositivo: stringa di connessione del dispositivo per un dispositivo creato all'interno dell'hub IoT previsto.
- Dimensioni macchina virtuale: dimensioni della macchina virtuale da distribuire.
- Versione del sistema operativo Ubuntu: versione del sistema operativo Ubuntu da installare nella macchina virtuale di base. Lasciare invariato il valore predefinito perché sarà già impostato su Ubuntu 18.04-LTS.
- Tipo di autenticazione: scegliere sshPublicKey o password in base alle preferenze.
- Amministrazione Password o Chiave: valore della chiave pubblica SSH o del valore della password in base alla scelta del tipo di autenticazione.
Dopo aver compilato tutte le caselle, selezionare la casella di controllo nella parte inferiore della pagina per accettare le condizioni. Selezionare Acquista per avviare la distribuzione.
Verificare che la distribuzione sia stata completata correttamente. Attendere alcuni minuti dopo il completamento della distribuzione per il completamento dell'installazione e della configurazione per completare l'installazione di IoT Edge e dell'agente di aggiornamento del pacchetto del dispositivo.
Una risorsa macchina virtuale deve essere stata distribuita nel gruppo di risorse selezionato. Prendere nota del nome del computer, nel formato
vm-0000000000000
. Si noti anche il nome DNS associato, nel formato<dnsLabelPrefix>
.<location>
. cloudapp.azure.com.È possibile ottenere il nome DNS dalla sezione Panoramica della macchina virtuale appena distribuita nel portale di Azure.
Suggerimento
Per connettersi tramite SSH a questa macchina virtuale dopo l'installazione, usare il nome DNS associato con il comando seguente:
ssh <adminUsername>@<DNS_Name>
.Aprire i dettagli di configurazione (vedere come configurare il file di configurazione qui con il comando seguente. Impostare connectionType su 'AIS' e connectionData come stringa vuota.
/etc/adu/du-config.json
- Riavviare l'agente di Aggiornamento dispositivi eseguendo il comando seguente:
sudo systemctl restart adu-agent
Aggiornamento del dispositivo per i pacchetti software hub IoT di Azure sono soggetti alle condizioni di licenza seguenti:
Leggere le condizioni di licenza prima di usare un pacchetto. L'installazione e l'uso di un pacchetto costituiscono l'accettazione di queste condizioni. Se non si accettano le condizioni di licenza, non usare il pacchetto.
Preparare manualmente un dispositivo
Analogamente ai passaggi automatizzati dallo script cloud-init, vengono usati i passaggi manuali seguenti per installare e configurare un dispositivo. Usare questi passaggi per preparare un dispositivo fisico.
Seguire le istruzioni per installare il runtime di Azure IoT Edge.
Nota
L'agente di Aggiornamento dispositivi non dipende da IoT Edge. Ma si basa sul daemon del servizio di identità IoT installato con IoT Edge (1.2.0 e versioni successive) per ottenere un'identità e connettersi a hub IoT.
Anche se non trattato in questa esercitazione, il daemon del servizio di gestione delle identità IoT può essere installato in modalità autonoma nei dispositivi IoT basati su Linux. La sequenza di installazione è importante. L'agente del pacchetto Device Update deve essere installato dopo il servizio di gestione delle identità IoT. In caso contrario, l'agente del pacchetto non verrà registrato come componente autorizzato per stabilire una connessione a hub IoT.
Installare i pacchetti deb dell'agente di Aggiornamento dispositivi:
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
Immettere il modulo del dispositivo IoT (o il dispositivo, a seconda di come è stato effettuato il provisioning del dispositivo con Aggiornamento dispositivo) stringa di connessione primaria nel file di configurazione eseguendo il comando seguente:
/etc/adu/du-config.json
Riavviare l'agente di Aggiornamento dispositivi eseguendo il comando seguente:
sudo systemctl restart adu-agent
Aggiornamento del dispositivo per i pacchetti software hub IoT di Azure sono soggetti alle condizioni di licenza seguenti:
Leggere le condizioni di licenza prima di usare un pacchetto. L'installazione e l'uso di un pacchetto costituiscono l'accettazione di queste condizioni. Se non si accettano le condizioni di licenza, non usare il pacchetto.
Aggiungere un tag al dispositivo
Accedere al portale di Azure e passare all'hub IoT.
Nel riquadro sinistro, in Dispositivi individuare il dispositivo IoT Edge e passare al dispositivo gemello o al modulo gemello.
Nel modulo gemello del modulo Agente aggiornamento dispositivi eliminare i valori dei tag device Update esistenti impostandoli su Null. Se si usa l'identità del dispositivo con l'agente di Aggiornamento dispositivi, apportare queste modifiche nel dispositivo gemello.
Aggiungere un nuovo valore del tag Device Update, come illustrato di seguito:
"tags": { "ADUGroup": "<CustomTagValue>" },
Importare l'aggiornamento
Passare a Versioni di Aggiornamento dispositivi in GitHub e selezionare l'elenco a discesa Asset . Per scaricarlo
Tutorial_IoTEdge_PackageUpdate.zip
, selezionarlo. Estrarre il contenuto della cartella per individuare un manifesto APT di esempio (sample-1.0.2-aziot-edge-apt-manifest.json) e il manifesto di importazione corrispondente (sample-1.0.2-aziot-edge-importManifest.json).Accedere al portale di Azure e passare all'hub IoT con Aggiornamento dispositivi. Nel riquadro sinistro, in Gestione dispositivi automatico selezionare Aggiornamenti.
Selezionare la scheda Aggiornamenti.
Selezionare + Importa nuovo aggiornamento.
Selezionare + Seleziona dal contenitore di archiviazione. Selezionare un account esistente o creare un nuovo account usando + Account di archiviazione. Selezionare quindi un contenitore esistente o creare un nuovo contenitore usando + Contenitore. Questo contenitore viene usato per preparare i file di aggiornamento per l'importazione.
Nota
È consigliabile usare un nuovo contenitore ogni volta che si importa un aggiornamento per evitare di importare accidentalmente file dagli aggiornamenti precedenti. Se non si usa un nuovo contenitore, assicurarsi di eliminare tutti i file dal contenitore esistente prima di completare questo passaggio.
Nel contenitore selezionare Carica e passare ai file scaricati nel passaggio 1. Dopo aver selezionato tutti i file di aggiornamento, selezionare Carica. Selezionare quindi il pulsante Seleziona per tornare alla pagina Importa aggiornamento .
Questo screenshot mostra il passaggio di importazione. I nomi di file potrebbero non corrispondere a quelli usati nell'esempio.
Nella pagina Importa aggiornamento esaminare i file da importare. Selezionare quindi Importa aggiornamento per avviare il processo di importazione.
Viene avviato il processo di importazione e la schermata passa alla sezione Cronologia importazione . Quando la colonna Stato indica che l'importazione è riuscita, selezionare l'intestazione Aggiornamenti disponibili . L'aggiornamento importato dovrebbe essere visualizzato nell'elenco.
Altre informazioni su come importare gli aggiornamenti.
Creare un gruppo di aggiornamento
Passare alla scheda Gruppi e distribuzioni nella parte superiore della pagina.
Selezionare il pulsante Aggiungi gruppo per creare un nuovo gruppo.
Selezionare un tag hub IoT e Classe dispositivo dall'elenco. Selezionare quindi Crea gruppo.
Dopo aver creato il gruppo, si noterà che l'elenco dei gruppi e del grafico di conformità degli aggiornamenti viene aggiornato. Il grafico conformità degli aggiornamenti mostra il numero di dispositivi in vari stati di conformità: in caso di aggiornamento più recente, nuovi aggiornamenti disponibili e Aggiornamenti in corso. Informazioni sulla conformità degli aggiornamenti.
Verrà visualizzato il gruppo appena creato e gli eventuali aggiornamenti disponibili per i dispositivi nel nuovo gruppo. Se sono presenti dispositivi che non soddisfano i requisiti della classe di dispositivo del gruppo, vengono visualizzati in un gruppo non valido corrispondente. Per distribuire il miglior aggiornamento disponibile al nuovo gruppo definito dall'utente da questa visualizzazione, selezionare Distribuisci accanto al gruppo.
Altre informazioni su come aggiungere tag e creare gruppi di aggiornamento.
Distribuire l'aggiornamento
Dopo aver creato il gruppo, verrà visualizzato un nuovo aggiornamento disponibile per il gruppo di dispositivi con un collegamento all'aggiornamento in Aggiornamento migliore. Potrebbe essere necessario eseguire l'aggiornamento una sola volta. Altre informazioni sulla conformità degli aggiornamenti.
Selezionare il gruppo di destinazione selezionando il nome del gruppo. I dettagli del gruppo vengono indirizzati in Nozioni di base sui gruppi.
Per avviare la distribuzione, passare alla scheda Distribuzione corrente . Selezionare il collegamento Distribuisci accanto all'aggiornamento desiderato nella sezione Aggiornamenti disponibili . L'aggiornamento migliore disponibile per un determinato gruppo è indicato con un'evidenziazione migliore .
Pianificare l'avvio della distribuzione immediatamente o in futuro. Quindi selezionare Crea.
Suggerimento
Per impostazione predefinita, la data e l'ora di inizio sono 24 ore dall'ora corrente. Assicurarsi di selezionare una data e un'ora diverse se si vuole che la distribuzione inizi in precedenza.
In Dettagli distribuzionelo stato diventa Attivo. L'aggiornamento distribuito è contrassegnato con (distribuzione).
Visualizzare il grafico di conformità per verificare che l'aggiornamento sia in corso.
Dopo che il dispositivo è stato aggiornato correttamente, si noterà che il grafico di conformità e i dettagli della distribuzione sono stati aggiornati per riflettere lo stesso.
Monitorare la distribuzione degli aggiornamenti
Selezionare la scheda Cronologia distribuzione nella parte superiore della pagina.
Selezionare il collegamento dettagli accanto alla distribuzione creata.
Selezionare Aggiorna per visualizzare i dettagli dello stato più recenti.
A questo punto è stato completato un aggiornamento del pacchetto end-to-end con Aggiornamento dispositivi per hub IoT in un dispositivo Ubuntu Server 18.04 x64.
Pulire le risorse
Quando non è più necessario, pulire l'account di aggiornamento del dispositivo, l'istanza e l'hub IoT. Pulire anche il dispositivo IoT Edge se è stata creata la macchina virtuale tramite il pulsante Distribuisci in Azure. Per pulire le risorse, passare a ogni singola risorsa e selezionare Elimina. Pulire un'istanza di aggiornamento del dispositivo prima di pulire l'account di aggiornamento del dispositivo.
Passaggi successivi
Usare le esercitazioni seguenti per una semplice dimostrazione di Aggiornamento dispositivi per hub IoT:
- Aggiornamento immagini: introduzione a Raspberry Pi 3 B+ riferimento all'immagine Yocto estendibile tramite open source per creare immagini personalizzate per altre architetture in base alle esigenze.
- Aggiornamento proxy: introduzione all'uso dell'agente binario di Aggiornamento dispositivi per i dispositivi downstream.
- Introduzione all'uso dell'agente di riferimento del simulatore Ubuntu (18.04 x64).
- Aggiornamento del dispositivo per hub IoT di Azure esercitazione per il sistema operativo in tempo reale di Azure.