Esercitazione: Aggiornamento del dispositivo per hub IoT di Azure usando l'agente di riferimento del simulatore Ubuntu (18.04 x64)

Questa esercitazione illustra un aggiornamento basato su immagini end-to-end usando Aggiornamento dispositivi per hub IoT. Aggiornamento del dispositivo per hub IoT di Azure supporta aggiornamenti basati su immagini, basati su pacchetti e basati su script.

Gli aggiornamenti delle immagini offrono un livello di attendibilità superiore nello stato finale del dispositivo. In genere è più semplice replicare i risultati di un aggiornamento delle immagini tra un ambiente di pre-produzione e un ambiente di produzione perché non pone le stesse sfide della gestione dei pacchetti e delle relative dipendenze. Grazie alla loro natura atomica, è anche possibile adottare facilmente un modello di failover A/B.

In questa esercitazione si apprenderà come:

  • Assegnare un dispositivo IoT a un gruppo di aggiornamento dispositivi usando tag.
  • Scaricare e installare un'immagine.
  • Importare un aggiornamento.
  • Distribuire un aggiornamento dell'immagine.
  • Monitorare la distribuzione degli aggiornamenti.

Prerequisiti

  • Creare un account e un'istanza di Aggiornamento dispositivi configurati con un hub IoT.

  • Avere un dispositivo Ubuntu 18.04. Questo dispositivo può essere fisico o una macchina virtuale.

  • Scaricare il file ZIP denominato Tutorial_Simulator.zip da Release Assets nella versione più recente e decomprimerlo.

    Se il dispositivo di test è diverso dal computer di sviluppo, scaricare il file ZIP in entrambi.

    È possibile usare wget per scaricare il file ZIP. Sostituire <release_version> con la versione più recente, ad esempio 1.0.0.

    wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
    

Registrare un dispositivo e configurare un'identità del modulo

Aggiungere un dispositivo al registro dei dispositivi nell'hub IoT. Ogni dispositivo che si connette all'hub IoT deve essere registrato.

In questa sezione si creerà anche un'identità del modulo. I moduli sono identità indipendenti per i componenti esistenti in un dispositivo IoT, che consente una granularità più fine quando si dispone di un dispositivo IoT che esegue più processi. Per questa esercitazione si userà questa identità del modulo per l'agente di Aggiornamento dispositivi in esecuzione nel dispositivo IoT. Per altre informazioni, vedere Comprendere e usare moduli gemelli nell'hub IoT.

  1. Dalla portale di Azure passare all'hub IoT.
  2. Nel riquadro a sinistra selezionare Dispositivi. Selezionare quindi Aggiungi dispositivo.
  3. In ID dispositivo immettere un nome per il dispositivo. Assicurarsi che la casella di controllo Chiavi generate automaticamente sia selezionata.
  4. Selezionare Salva.
  5. A questo momento, si torna alla pagina Dispositivi e il dispositivo creato dovrebbe trovarsi nell'elenco. Selezionare il dispositivo.
  6. Selezionare Aggiungi identità modulo.
  7. In Nome identità modulo immettere un nome per il modulo, ad esempio DUAgent.
  8. Selezionare Salva

Copiare la stringa di connessione del modulo

  1. Nella visualizzazione del dispositivo dovrebbe essere visualizzato il nuovo modulo elencato sotto l'intestazione Identità del modulo . Selezionare il nome del modulo per aprirlo.
  2. Selezionare l'icona Copia accanto a Stringa di connessione (chiave primaria) . Salvare questa stringa di connessione da usare quando si configura l'agente di Aggiornamento dispositivi. Questa stringa è la stringa di connessione del modulo.

Aggiungere un tag al modulo gemello

  1. Sempre nella pagina dei dettagli dell'identità del modulo selezionare Module Identity Twin

  2. Aggiungere un nuovo valore del tag Device Update allo stesso livello di modelId e version nel file gemello, come illustrato di seguito:

    "tags": {
        "ADUGroup": "DU-simulator-tutorial"
    },
    

    Screenshot del tag ADUGroup nel modulo gemello.

    Ogni dispositivo gestito da Aggiornamento dispositivi richiede questo tag riservato, che assegna il dispositivo a un gruppo di aggiornamento dispositivi. Può trovarsi nel dispositivo gemello o in un modulo gemello, come illustrato di seguito. Ogni dispositivo può essere assegnato solo a un gruppo di aggiornamento dispositivi.

  3. Selezionare Salva. Il portale riformatta il modulo gemello per incorporare il tag nella struttura json.

Installare e configurare l'agente di Aggiornamento dispositivi

L'agente aggiornamento dispositivi viene eseguito in ogni dispositivo gestito da Aggiornamento dispositivi. Per questa esercitazione verrà configurata per l'esecuzione come simulatore in modo che sia possibile vedere come applicare un aggiornamento a un dispositivo senza modificare effettivamente la configurazione del dispositivo.

  1. Nel dispositivo IoT aggiungere il repository dei pacchetti Microsoft e quindi aggiungere la chiave di firma del pacchetto Microsoft all'elenco di chiavi attendibili.

    wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb   
    
  2. Installare i pacchetti deb dell'agente di Aggiornamento dispositivi.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Aprire il file di configurazione dell'agente.

    sudo nano /etc/adu/du-config.json
    
  4. Aggiornare i valori seguenti nel file di configurazione:

    • manufacturer: "Contoso" questo valore viene usato per classificare il dispositivo IoT per la destinazione degli aggiornamenti.
    • model: "Video" questo valore viene usato per classificare il dispositivo IoT per la destinazione degli aggiornamenti.
    • nome: "aduagent"
    • agents.connectionData: specificare la stringa di connessione copiata dall'identità del modulo.
    • agents.manufacturer: "Contoso"
    • agents.model: "Video"

    Per altre informazioni sui parametri in questo passaggio, vedere File di configurazione di Aggiornamento dispositivi.

    Nota

    È anche possibile usare il servizio di gestione delle identità IoT per effettuare il provisioning del dispositivo. A tale scopo, installare il servizio di rientro iot prima di installare l'agente di Aggiornamento dispositivi. Configurare quindi l'agente di Aggiornamento dispositivi con "connectionType": "AIS" e connectionData come stringa vuota nel file di configurazione.

  5. Salvare e chiudere il file. CTRL + X, Ye Enter.

  6. Configurare l'agente per l'esecuzione come simulatore. Eseguire il comando seguente nel dispositivo IoT in modo che l'agente di Aggiornamento dispositivi richiami il gestore del simulatore per elaborare un aggiornamento del pacchetto con SWUpdate (microsoft/swupdate:1).

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    
  7. Decomprimere Tutorial_Simulator.zip il file scaricato nei prerequisiti e copiare il sample-du-simulator-data.json file nella tmp cartella .

    cp sample-du-simulator-data.json /tmp/du-simulator-data.json
    

    Se /tmp non esiste, eseguire:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Modificare le autorizzazioni per il nuovo file.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Riavviare l'agente di Aggiornamento dispositivi per applicare le modifiche.

     sudo systemctl restart deviceupdate-agent
    

Importare un aggiornamento

In questa sezione vengono usati i file TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu i file scaricati Tutorial_Simulator.zip nei prerequisiti. Il file di aggiornamento viene riutilizzato dall'esercitazione su Raspberry Pi. Poiché l'aggiornamento in questa esercitazione è simulato, il contenuto del file specifico non è rilevante.

  1. Nel computer di sviluppo accedere al portale di Azure e passare all'hub IoT configurato con Aggiornamento dispositivi.

  2. Nel riquadro di spostamento, in Gestione dispositivi, selezionare Aggiornamenti.

  3. Selezionare Importa un nuovo aggiornamento.

  4. Selezionare Seleziona dal contenitore di archiviazione.

  5. Selezionare un account di archiviazione esistente o crearne uno nuovo selezionando + Account di archiviazione. Selezionare quindi un contenitore esistente o crearne uno nuovo selezionando + Contenitore. Questo contenitore verrà 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.

    Screenshot che mostra gli account di archiviazione e i contenitori.

  6. Nel contenitore selezionare Carica e passare ai file scaricati nei prerequisiti. Selezionare i file TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu , quindi selezionare Carica.

  7. Selezionare la casella di controllo in base a ogni file, quindi selezionare il pulsante Seleziona per tornare alla pagina Importa aggiornamento .

    Screenshot che mostra la selezione dei file caricati nel contenitore.

  8. Nella pagina Importa aggiornamento esaminare i file da importare. Selezionare Quindi Importa aggiornamento per avviare il processo di importazione.

    Screenshot che mostra i file caricati che verranno importati come aggiornamento.

  9. Il processo di importazione inizia e la schermata passa alla sezione Importa cronologia . La colonna Stato mostra l'importazione come In esecuzione mentre l'importazione è in corso e Ha avuto esito positivo al termine dell'importazione. Usare il pulsante Aggiorna per aggiornare lo stato.

  10. Quando la colonna Stato indica che l'importazione ha avuto esito positivo, selezionare l'intestazione Aggiornamenti disponibili . Verrà visualizzato l'aggiornamento importato nell'elenco.

    Screenshot che mostra il nuovo aggiornamento elencato come aggiornamento disponibile.

Per altre informazioni sul processo di importazione, vedere Importare un aggiornamento all'aggiornamento del dispositivo per hub IoT.

Visualizzare i gruppi di dispositivi

L'aggiornamento dei dispositivi usa i gruppi per organizzare i dispositivi. Aggiornamento dispositivo ordina automaticamente i dispositivi in gruppi in base ai tag assegnati e alle proprietà di compatibilità. Ogni dispositivo appartiene a un solo gruppo, ma i gruppi possono avere più sottogruppi per ordinare classi di dispositivi diverse.

  1. Passare alla scheda Gruppi e distribuzioni nella parte superiore della pagina Aggiornamenti.

  2. Visualizzare l'elenco dei gruppi e il grafico di conformità degli aggiornamenti. Il grafico di conformità degli aggiornamenti mostra il numero di dispositivi in vari stati di conformità: nell'aggiornamento più recente, nuovi aggiornamenti disponibili e Aggiornamenti in corso. Informazioni sulla conformità degli aggiornamenti.

    Screenshot che mostra la visualizzazione di conformità dell'aggiornamento.

    Verrà visualizzato un gruppo di dispositivi che contiene il dispositivo simulato configurato in questa esercitazione insieme agli aggiornamenti disponibili per i dispositivi nel nuovo gruppo. Se sono presenti dispositivi che non soddisfano i requisiti della classe di dispositivo del gruppo, verranno visualizzati in un gruppo non valido corrispondente.

Per altre informazioni sui tag e i gruppi, vedere Gestire i gruppi di dispositivi.

Distribuire l'aggiornamento

  1. Nella scheda Gruppi e distribuzioni verrà visualizzato un nuovo aggiornamento disponibile per il gruppo di dispositivi. Un collegamento all'aggiornamento deve essere in Stato. Potrebbe essere necessario aggiornare la pagina.

  2. Selezionare il nome del gruppo per visualizzarne i dettagli.

  3. Nella pagina dei dettagli del gruppo si noterà che è disponibile un nuovo aggiornamento. Selezionare Distribuisci per avviare la distribuzione.

    Screenshot che mostra l'avvio di una distribuzione di aggiornamento del gruppo.

  4. L'aggiornamento importato nella sezione precedente è elencato come aggiornamento migliore disponibile per questo gruppo. Selezionare Distribuisci.

  5. Pianificare la distribuzione per avviare immediatamente, quindi selezionare Crea.

  6. Nella pagina dettagli gruppo passare alla scheda Aggiornamenti correnti . In Dettagli distribuzione lo stato passa ad Attivo.

  7. Dopo l'aggiornamento del dispositivo, tornare alla pagina Aggiornamenti. Si noterà che i dettagli del grafico di conformità e della distribuzione vengono aggiornati per riflettere lo stesso.

Monitorare la distribuzione degli aggiornamenti

  1. Tornare alla pagina dei dettagli del gruppo e selezionare la scheda Cronologia distribuzione .

  2. Selezionare Visualizza i dettagli della distribuzione accanto alla distribuzione creata.

    Screenshot che mostra i dettagli della distribuzione.

  3. Selezionare Aggiorna per visualizzare i dettagli di stato più recenti.

A questo punto è stato completato un aggiornamento dell'immagine end-to-end corretto usando l'agente di riferimento hub IoT del simulatore Ubuntu (18.04 x64).

Pulire le risorse

Se si continuerà all'esercitazione successiva, mantenere l'aggiornamento del dispositivo e hub IoT risorse.

Quando non è più necessario, è possibile eliminare queste risorse nel portale di Azure.

  1. Passare al gruppo di risorse nel portale di Azure.

  2. Scegliere quali risorse eliminare.

    • Se si desidera eliminare tutte le risorse nel gruppo, selezionare Elimina gruppo di risorse.
    • Se si desidera eliminare solo le risorse selezionate, usare le caselle di controllo per selezionare le risorse e quindi selezionare Elimina.

Passaggi successivi

In questa esercitazione si è appreso come importare e distribuire un aggiornamento dell'immagine. Informazioni su come aggiornare i pacchetti di dispositivo.