Tutoriel : Device Update pour Azure IoT Hub avec l’agent de référence du simulateur Ubuntu (18.04 x64)

Ce tutoriel vous montre la mise à jour de bout en bout basée sur une image à l’aide du service Device Update pour IoT Hub. Device Update pour Azure IoT Hub prend en charge les mises à jour basées sur une image, un package et un script.

Les mises à jour basées sur une image offrent un niveau de confiance plus élevé pour l’état final de l’appareil. Il est généralement plus facile de répliquer les résultats d’une mise à jour basée sur une image entre un environnement de préproduction et un environnement de production, car cette opération ne présente pas les mêmes défis que la gestion des packages et leurs dépendances. En raison de sa nature atomique, le modèle de basculement A/B peut être adopté facilement.

Ce didacticiel vous montre comment effectuer les opérations suivantes :

  • Attribuez un appareil IoT à un groupe Device Update à l’aide d’étiquettes.
  • Télécharger et installer une image.
  • Importez une mise à jour.
  • Déployez une mise à jour d’image.
  • Supervisez le déploiement de la mise à jour.

Prérequis

  • Créez un compte et une instance Device Update configurés avec un hub IoT.

  • Avoir un appareil Ubuntu 18.04 Cet appareil peut être soit physique, soit une machine virtuelle.

  • Téléchargez le fichier zip nommé Tutorial_Simulator.zip à partir des ressources de mise en production dans la dernière version et décompressez-le.

    Si votre appareil de test est différent de votre ordinateur de développement, téléchargez le fichier zip sur les deux.

    Vous pouvez utiliser wget pour télécharger le fichier zip. Remplacez <release_version> par la dernière version, par exemple 1.0.0.

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

Inscrire un appareil et configurer une identité de module

Ajoutez un appareil au registre d’appareils dans votre hub IoT. Chaque appareil qui se connecte à IoT Hub doit être inscrit.

Dans cette section, nous allons également créer une identité de module. Les modules sont des identités indépendantes pour les composants qui existent sur un appareil IoT, ce qui permet une précision plus fine lorsque vous avez un appareil IoT exécutant plusieurs processus. Pour ce tutoriel, vous allez utiliser cette identité de module pour l’agent Device Update qui s’exécute sur l’appareil IoT. Pour en savoir plus, consultez Comprendre et utiliser les jumeaux de Module IoT Hub.

  1. Sur le Portail Azure, accédez à votre hub IoT.
  2. Dans le volet gauche, sélectionnez Appareils. Puis sélectionnez Ajouter un appareil.
  3. Sous ID de périphérique, entrez un nom pour l’appareil. Assurez-vous que la case Générer automatiquement les clés est cochée.
  4. Sélectionnez Enregistrer.
  5. À présent, vous êtes redirigé vers la page Appareils et l’appareil que vous avez créé doit figurer dans la liste. Sélectionnez cet appareil.
  6. Sélectionnez Ajouter une identité de module.
  7. Sous Nom d’identité du module, entrez un nom pour le module, par exemple DUAgent.
  8. Sélectionnez Enregistrer.

Copier la chaîne de connexion du module

  1. Dans la vue de l’appareil, vous devriez voir votre nouveau module répertorié sous le titre Identités de module. Sélectionnez le nom du module pour ouvrir ses détails.
  2. Sélectionnez l’icône Copier en regard de Chaîne de connexion (clé primaire). Enregistrez cette chaîne de connexion à utiliser lorsque vous configurez l’agent Device Update. Cette chaîne est votre chaîne de connexion de module.

Ajouter une étiquette à votre jumeau de module

  1. Toujours sur la page Détails sur l’identité de module, sélectionnez Jumeau d’identité de module

  2. Ajoutez une nouvelle valeur d’étiquette Device Update au même niveau que modelId et version dans le fichier jumeau, comme indiqué :

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

    Capture d’écran de l’étiquette ADUGroup dans le jumeau de module.

    Chaque appareil géré par Device Update a besoin de cette étiquette réservée, qui affecte l’appareil à un groupe Device Update. Il peut être dans le jumeau d’appareil ou dans un jumeau de module, comme illustré ici. Chaque appareil ne peut être affecté qu’à un seul groupe Device Update.

  3. Sélectionnez Enregistrer. Le portail reforma le jumeau de module pour incorporer l’étiquette dans la structure JSON.

Installer et configurer l’agent Device Update

L’agent Device Update s’exécute sur chaque appareil géré par Device Update. Pour ce tutoriel, nous allons le configurer pour qu’il s’exécute en tant que simulateur afin de voir comment une mise à jour peut être appliquée à un appareil sans modifier la configuration de l’appareil.

  1. Sur votre appareil IoT, ajoutez le référentiel de packages Microsoft, puis ajoutez la clé de signature du package Microsoft à votre liste de clés approuvées.

    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. Installez les packages .deb de l’agent Device Update.

    sudo apt-get update
    sudo apt-get install deviceupdate-agent
    
  3. Ouvrez le fichier de configuration de l’agent.

    sudo nano /etc/adu/du-config.json
    
  4. Mettez à jour les valeurs suivantes dans le fichier de configuration :

    • manufacturer : "Contoso" - Cette valeur est utilisée pour classifier l’appareil IoT pour le ciblage des mises à jour.
    • model : "Video" - Cette valeur est utilisée pour classifier l’appareil IoT pour cibler les mises à jour.
    • nom : "aduagent"
    • agents.connectionData : indiquez la chaîne de connexion que vous avez copiée à partir de l’identité du module.
    • agents.manufacturer : "Contoso"
    • agents.model : "Video"

    Pour plus d’informations sur les paramètres de cette étape, consultez Fichier de configuration Device Update.

    Notes

    Vous pouvez également utiliser le service d’identité IoT pour approvisionner l’appareil. Pour ce faire, installez le service d’identité IoT avant d’installer l’agent Device Update. Ensuite, configurez l’agent Device Update avec "connectionType": "AIS" et connectionData en tant que chaîne vide dans le fichier de configuration.

  5. Enregistrez et fermez le fichier. CTRL+X, Y et Enter.

  6. Configurez l’agent pour qu’il s’exécute comme un simulateur. Exécutez la commande suivante sur l’appareil IoT afin que l’agent Device Update appelle le gestionnaire du simulateur pour traiter une mise à jour de package avec 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. Décompressez le fichier Tutorial_Simulator.zip que vous avez téléchargé dans les prérequis et copiez le fichier sample-du-simulator-data.json dans le dossier tmp.

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

    Si /tmp n’existe pas, exécutez :

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  8. Autorisations de modification du nouveau fichier.

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    
  9. Redémarrez l’agent Device Update pour appliquer vos modifications.

     sudo systemctl restart deviceupdate-agent
    

Importer une mise à jour

Dans cette section, vous utilisez les fichiers TutorialImportManifest_Sim.importmanifest.json et adu-update-image-raspberrypi3.swu du Tutorial_Simulator.zip téléchargé dans les conditions préalables. Le fichier de mise à jour est réutilisé à partir du tutoriel Raspberry Pi. Étant donné que la mise à jour est simulée dans ce tutoriel, le contenu du fichier spécifique n’a pas d’importance.

  1. Sur votre ordinateur de développement, connectez-vous au Portail Azure et accédez à votre hub IoT configuré avec Device Update.

  2. Dans le volet de navigation, sous Gestion des appareils, sélectionnez Mises à jour.

  3. Sélectionnez Importer une nouvelle mise à jour.

  4. Sélectionnez Sélectionner dans le conteneur de stockage.

  5. Sélectionnez un compte existant ou créez-en un en utilisant + Compte de stockage. Sélectionnez ensuite un conteneur existant ou créez-en un en sélectionnant + Conteneur. Ce conteneur sera utilisé pour préparer vos fichiers de mise à jour pour l’importation.

    Notes

    Nous vous recommandons d’utiliser un nouveau conteneur chaque fois que vous importez une mise à jour pour éviter d’importer accidentellement des fichiers à partir de mises à jour précédentes. Si vous n’utilisez pas un nouveau conteneur, veillez à supprimer tous les fichiers du conteneur existant avant de terminer cette étape.

    Capture d’écran illustrant Comptes de stockage et Conteneurs.

  6. Dans votre conteneur, sélectionnez Charger et accédez aux fichiers que vous avez téléchargés dans les prérequis. Sélectionnez les fichiers TutorialImportManifest_Sim.importmanifest.json et adu-update-image-raspberrypi3.swu, puis Charger.

  7. Cochez la case de chaque fichier, puis sélectionnez le bouton Sélectionner pour revenir à la page Importer la mise à jour.

    Capture d’écran montrant la sélection des fichiers chargés dans le conteneur.

  8. Sur la page Importer la mise à jour, passez en revue les fichiers à importer. Sélectionnez ensuite Importer la mise à jour pour démarrer le processus d’importation.

    Capture d’écran montrant les fichiers chargés qui seront importés en tant que mise à jour.

  9. Le processus d’importation commence et l’écran passe à la section Historique d’importation. La colonne État indique que l’importation est En cours d’exécution pendant que l’importation est en cours et Réussi une fois l’importation terminée. Utilisez sur le bouton Actualiser pour mettre à jour l’état.

  10. Quand la colonne État indique que l’importation a réussi, sélectionnez l’en-tête Mises à jour disponibles. Vous devez maintenant voir votre mise à jour importée dans la liste.

    Capture d’écran montrant la nouvelle mise à jour répertoriée en tant que mise à jour disponible.

Pour plus d’informations sur le processus d’importation, consultez Importer une mise à jour vers Device Update pour IoT Hub.

Afficher les groupes d’appareils

Device Update utilise des groupes pour organiser les appareils. Device Update trie automatiquement les appareils en groupes en fonction des étiquettes et des propriétés de compatibilité qui leur sont attribuées. Chaque appareil appartient à un seul groupe, mais les groupes peuvent avoir plusieurs sous-groupes pour trier différentes classes d’appareils.

  1. Accédez à l’onglet Groupes et déploiements en haut de la page Mises à jour.

  2. Affichez la liste des groupes et le graphique de conformité de mise à jour. Le graphique de conformité des mises à jour montre le nombre d’appareils dans différents états de conformité : À la mise à jour la plus récente, Nouvelles mises à jour disponibles et Mises à jour en cours. En savoir plus sur la conformité des mises à jour.

    Capture d’écran illustrant l’affichage de conformité des mises à jour.

    Vous devez voir un groupe d’appareils qui contient l’appareil simulé que vous avez configuré dans ce tutoriel, ainsi que toutes les mises à jour disponibles pour les appareils du nouveau groupe. Si des appareils ne répondent pas aux exigences de classe d’appareil du groupe, ils apparaissent dans un groupe non valide correspondant.

Pour plus d’informations sur les balises et les groupes, consultez Gérer les groupes d’appareils.

Déployer la mise à jour

  1. Sous l’onglet Groupes et déploiements, vous devriez voir une nouvelle mise à jour disponible pour votre groupe d’appareils. Un lien vers la mise à jour doit s’afficher sous État. Vous devrez probablement actualiser la page.

  2. Sélectionnez le nom du groupe pour en afficher les détails.

  3. Dans la page des détails du groupe, vous devriez voir qu’une nouvelle mise à jour est disponible. Sélectionnez Déployer pour démarrer le déploiement.

    Capture d’écran montrant le démarrage d’un déploiement de mise à jour de groupe.

  4. La mise à jour que nous avons importée dans la section précédente est répertoriée comme la meilleure mise à jour disponible pour ce groupe. Sélectionnez Déployer.

  5. Planifiez votre déploiement pour le démarrer immédiatement, puis sélectionnez Créer.

  6. Dans la page des détails du groupe, accédez à l’onglet Mises à jour actuelles. Sous Détails du déploiement, l’État passe à Actif.

  7. Une fois votre appareil mis à jour, revenez à la page Mises à jour. Vous devriez voir que votre graphique de conformité et les détails du déploiement sont mis à jour pour concorder.

Surveiller le déploiement de la mise à jour

  1. Revenez à la page des détails du groupe et sélectionnez l’onglet Historique du déploiement.

  2. Sélectionnez Afficher les détails du déploiement à côté du déploiement que vous avez créé.

    Capture d’écran illustrant Détails du déploiement.

  3. Sélectionnez Actualiser pour voir les détails d’état les plus récents.

Vous avez maintenant effectué une mise à jour d’image de bout en bout à l’aide de Device Update pour IoT Hub avec l’agent de référence du simulateur Ubuntu (18.04 x64).

Nettoyer les ressources

Si vous passez au tutoriel suivant, conservez vos ressources Device Update et IoT Hub.

Lorsque vous n’en avez plus besoin, vous pouvez supprimer ces ressources dans le Portail Azure.

  1. Accédez à votre groupe de ressources sur le portail Azure.

  2. Choisissez les ressources à supprimer.

    • Si vous voulez supprimer toutes les ressources dans le groupe, sélectionnez Supprimer le groupe de ressources.
    • Si vous souhaitez uniquement supprimer des ressources sélectionnées, utilisez les cases à cocher pour sélectionner les ressources, puis sélectionnez Supprimer.

Étapes suivantes

Dans ce tutoriel, vous avez appris à importer et à déployer une mise à jour d’image. Découvrez ensuite comment mettre à jour les packages d’appareils.