Condividi tramite


Esercitazione: Aggiornamento dei dispositivi di Azure per hub IoT con un agente simulatore

Aggiornamento dei dispositivi di Azure per hub IoT supporta gli aggiornamenti basati su immagini, basati su pacchetti e basati su script. Questa esercitazione illustra un aggiornamento di Aggiornamento dispositivi basato su immagini end-to-end che usa un agente del simulatore Ubuntu.

Gli aggiornamenti delle immagini offrono un elevato livello di attendibilità nello stato finale del dispositivo e non presentano gli stessi problemi di gestione dei pacchetti e delle dipendenze degli aggiornamenti basati su pacchetti o script. È più facile replicare i risultati di un aggiornamento delle immagini tra una preproduzione e un ambiente di produzione o adottare facilmente un modello di failover A/B.

In questa esercitazione:

  • Assegnare un dispositivo IoT a un gruppo di Aggiornamento dispositivi usando i tag.
  • Scaricare e installare un aggiornamento delle immagini.
  • Importare l'aggiornamento dell'immagine.
  • Distribuire l'aggiornamento dell'immagine.
  • Visualizzare la cronologia di distribuzione degli aggiornamenti.

Prerequisiti

Registrare e configurare un dispositivo e un modulo

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

  1. Nella portale di Azure aprire la pagina dell'hub IoT associata all'istanza di Aggiornamento dispositivi.
  2. Nel riquadro di spostamento selezionare Dispositivi di gestione dei dispositivi>.
  3. Nella pagina Dispositivi selezionare Aggiungi dispositivo.
  4. In ID dispositivo immettere un nome per il dispositivo. Assicurarsi che la casella di controllo Genera automaticamente chiavi sia selezionata.
  5. Seleziona Salva. Il dispositivo viene visualizzato nell'elenco nella pagina Dispositivi .

Creare un'identità del modulo

Dopo aver registrato il dispositivo, creare un'identità del modulo. I moduli sono identità indipendenti per i componenti del dispositivo IoT, che consentono una granularità più fine quando il dispositivo esegue più processi.

Per questa esercitazione si crea un'identità del modulo per l'agente di Aggiornamento dispositivi eseguito nel dispositivo. Per altre informazioni, vedere Comprendere e usare moduli gemelli nell'hub IoT.

  1. Nella pagina Dispositivi selezionare il dispositivo registrato.
  2. Nella pagina del dispositivo selezionare Aggiungi identità modulo.
  3. Nella pagina Aggiungi identità modulo immettere un nome per il modulo, ad esempio DeviceUpdateAgent, in Nome identità modulo.
  4. Seleziona Salva. La nuova identità del modulo viene visualizzata nella pagina del dispositivo in Identità del modulo.
  5. Selezionare il nome del modulo e nella pagina Dettagli identità modulo selezionare l'icona Copia accanto a Stringa di connessione (chiave primaria). Salvare questo modulo stringa di connessione da usare quando si configura l'agente di Aggiornamento dispositivi.

Aggiungere un tag di gruppo al modulo gemello

Aggiornamento dispositivi organizza 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.

È possibile assegnare un tag a qualsiasi dispositivo gestito da Device Update per assegnare il dispositivo a un gruppo di aggiornamento dispositivi. Il tag può trovarsi nel dispositivo gemello o nel modulo gemello, come in questa esercitazione. Ogni dispositivo può essere assegnato a un solo gruppo di aggiornamento dispositivi.

  1. Nella pagina Module Identity Details (Dettagli identità modulo) selezionare Module Identity Twin (Identità del modulo gemello).

  2. Nella pagina Module Identity Twin (Identità modulo gemello ) aggiungere un nuovo DeviceUpdateGroup tag al codice JSON allo stesso livello di modelId e version, come indicato di seguito:

    "tags": {
        "DeviceUpdateGroup": "DU-simulator-tutorial"
    },
    
  3. Seleziona Salva. Il portale riformatta il modulo gemello per incorporare il tag nella struttura JSON.

Installare e configurare l'agente di Aggiornamento dispositivi

L'agente di Aggiornamento dispositivi viene eseguito in ogni dispositivo gestito da Device Update. In questa esercitazione si installa l'agente di Aggiornamento dispositivi nel dispositivo Ubuntu 18.04 e lo si configura per l'esecuzione come simulatore, dimostrando come applicare un aggiornamento a un dispositivo senza modificare la configurazione del dispositivo.

Nota

È anche possibile usare il servizio azure IoT Identity per effettuare il provisioning del dispositivo. A tale scopo, installare il servizio Azure IoT Identity prima di installare l'agente di Aggiornamento dispositivi. Configurare quindi l'agente di Aggiornamento dispositivi con "connectionType": "AIS" e lasciare connectionData una stringa vuota nel file di configurazione.

  1. 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 l'agente di Aggiornamento dispositivi .deb pacchetti.

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

    sudo nano /etc/adu/du-config.json
    
  4. Aggiornare du-config.json con i valori di esempio seguenti. Sostituire il <connection string> segnaposto con il stringa di connessione copiato dall'identità del modulo. Per altre informazioni sui parametri, vedere File di configurazione di Aggiornamento dispositivi.

    • manufacturer: "contoso"
    • model: "video"
    • agents.name: "aduagent"
    • agents.connectionData: <connection string>
    • agents.manufacturer: "contoso"
    • agents.model: "video"

    Il file di du-config.json modificato dovrebbe essere simile al seguente:

    {
       "schemaVersion": "1.0",
       "aduShellTrustedUsers": [
          "adu",
          "do"
       ],
       "manufacturer": "contoso",
       "model": "video",
       "agents": [
          {
          "name": "aduagent",
          "runas": "adu",
          "connectionSource": {
             "connectionType": "string",
             "connectionData": <connection string>
          },
          "manufacturer": "contoso",
          "model": "video"
          }
       ]
    }
    
  5. Premere CTRL+X per uscire dall'editor e immettere y per salvare le modifiche.

  6. Per configurare l'agente per l'esecuzione come simulatore, eseguire il comando seguente nel dispositivo IoT. L'agente di Aggiornamento dispositivi richiama il gestore del simulatore per elaborare gli aggiornamenti che usano l'estensione Microsoft SWUpdate.

      sudo /usr/bin/AducIotAgent --extension-type updateContentHandler --extension-id 'microsoft/swupdate:1' --register-extension /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so
    

Ottenere i file del simulatore

  1. Scaricare ed estrarre l'archivio Tutorial_Simulator.zip dalla sezione GitHub Device Update Release latest release Assets (Asset versione più recente) nel computer Ubuntu 18.04.

    È 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
    
  2. Copiare il file sample-du-simulator-data.json dalla cartella Tutorial_Simulator estratta nella cartella tmp.

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

    Nota

    Se la cartella tmp non esiste, crearla come segue:

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  3. Modificare le autorizzazioni per il file /tmp/sample-du-simulator-data.json .

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

     sudo systemctl restart deviceupdate-agent
    

Importare l'aggiornamento

Scaricare ed estrarre l'archivio Tutorial_Simulator.zip dalla sezione GitHub Device Update Release latest release Assets (Asset versione più recente) nel computer di sviluppo, se è diverso dal dispositivo IoT Ubuntu 18.04. Questa sezione usa i file TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu dalla cartella Tutorial_Simulator .

Il file di aggiornamento è uguale a quello dell'esercitazione su Raspberry Pi. Poiché l'aggiornamento in questa esercitazione viene 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 l'istanza di Aggiornamento dispositivi.

  2. Nel riquadro di spostamento selezionare Gestione dispositivi> Aggiornamenti.

  3. Nella pagina Aggiornamenti selezionare Importa un nuovo aggiornamento.

  4. Nella pagina Importa aggiornamento selezionare Seleziona dal contenitore di archiviazione.

  5. Selezionare un account di archiviazione esistente oppure creare un nuovo account selezionando Account di archiviazione.

  6. Selezionare un contenitore esistente oppure creare un nuovo contenitore selezionando Contenitore. Questo contenitore viene usato per preparare i file di aggiornamento per l'importazione.

    Nota

    Per evitare di importare accidentalmente file dagli aggiornamenti precedenti, usare un nuovo contenitore ogni volta che si importa un aggiornamento. Se non si usa un nuovo contenitore, assicurarsi di eliminare eventuali file dal contenitore esistente.

  7. Nella pagina del contenitore selezionare Carica. Passare a e selezionare i file TutorialImportManifest_Sim.importmanifest.json e adu-update-image-raspberrypi3.swu e quindi selezionare Carica.

  8. Selezionare le caselle di controllo per entrambi i file e quindi selezionare Seleziona per tornare alla pagina Importa aggiornamento .

    Screenshot che mostra la selezione dei file caricati nel contenitore.

  9. Nella pagina Importa aggiornamento esaminare i file da importare e quindi selezionare Importa aggiornamento.

    Screenshot che mostra i file caricati da importare come aggiornamento.

    Il processo di importazione inizia ed è possibile selezionare Visualizza cronologia importazione per visualizzare la cronologia di importazione e lo stato. Nella pagina Cronologia aggiornamenti il campo Stato mostra Operazione completata al termine dell'importazione. È possibile selezionare Aggiorna per aggiornare lo stato.

L'aggiornamento importato viene ora visualizzato nella pagina Aggiornamenti .

Screenshot che mostra il nuovo aggiornamento elencato come aggiornamento disponibile.

Per altre informazioni sul processo di importazione, vedere Importare un aggiornamento in Aggiornamento dispositivi per hub IoT.

Selezionare il gruppo di dispositivi

È possibile usare il tag di gruppo applicato al dispositivo per distribuire l'aggiornamento al gruppo di dispositivi. Selezionare la scheda Gruppi e distribuzioni nella parte superiore della pagina Aggiornamenti per visualizzare l'elenco di gruppi e distribuzioni e il grafico di conformità degli aggiornamenti.

Il grafico conformità degli aggiornamenti mostra il numero di dispositivi in vari stati di conformità: aggiornamento più recente, Nuovi aggiornamenti disponibili e Aggiornamenti in corso. Per altre informazioni, vedere Conformità degli aggiornamenti dei dispositivi.

In Nome gruppo viene visualizzato un elenco di tutti i gruppi di dispositivi per i dispositivi connessi a questo hub IoT e i relativi aggiornamenti disponibili, con collegamenti per distribuire gli aggiornamenti in Stato. Tutti i dispositivi che non soddisfano i requisiti della classe di dispositivo di un gruppo vengono visualizzati in un gruppo non valido corrispondente. Per altre informazioni su tag e gruppi, vedere Gestire i gruppi di dispositivi.

Verrà visualizzato il gruppo di dispositivi che contiene il dispositivo simulato configurato in questa esercitazione. Selezionare il nome del gruppo per visualizzarne i dettagli.

Screenshot che mostra la visualizzazione conformità degli aggiornamenti.

Distribuire l'aggiornamento

  1. Nella pagina Dettagli gruppo dovrebbe essere visualizzato un nuovo aggiornamento disponibile per questo gruppo. Selezionare Distribuisci per avviare la distribuzione.

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

  2. L'aggiornamento importato è elencato come l'aggiornamento migliore disponibile per questo gruppo. Seleziona Distribuisci.

  3. Pianificare l'avvio immediato della distribuzione e quindi selezionare Crea.

  4. Passare alla scheda Aggiornamenti correnti. In Dettagli distribuzione lo stato diventa Attivo.

  5. Dopo che il dispositivo è stato aggiornato correttamente, tornare alla pagina Aggiornamenti . Si noterà che il grafico di conformità e i dettagli della distribuzione sono stati aggiornati per includere l'aggiornamento installato.

Visualizzare la cronologia di 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. Selezionare Aggiorna per visualizzare i dettagli dello stato più recenti.

    Screenshot che mostra i dettagli della distribuzione.

Pulire le risorse

Se si intende continuare con l'esercitazione successiva, mantenere l'aggiornamento del dispositivo e le risorse hub IoT. Quando non sono più necessarie le risorse create per questa esercitazione, è possibile eliminarle.

  1. Nella portale di Azure passare al gruppo di risorse che contiene le risorse.
  2. Per eliminare tutte le risorse nel gruppo, selezionare Elimina gruppo di risorse.
  3. Per eliminare solo alcune delle risorse, usare le caselle di controllo per selezionare le risorse e quindi selezionare Elimina.