Partager via


Tutoriel : Azure Device Update pour IoT Hub à l’aide d’un agent de simulateur

Azure Device Update pour IoT Hub prend en charge les mises à jour basées sur une image, un package et un script. Ce tutoriel illustre une mise à jour de mise à jour d’appareil basée sur des images de bout en bout qui utilise un agent de simulateur Ubuntu.

Les mises à jour d’image proposent un niveau de confiance élevé dans l’état final de l’appareil et ne posent pas les mêmes problèmes de gestion de packages et de dépendances que les mises à jour basées sur un package ou un script. Il est plus facile de répliquer les résultats d’une mise à jour d’image entre un environnement de préproduction et de production, ou d’adopter facilement un modèle de basculement A/B.

Dans ce tutoriel, vous allez :

  • Affectez un appareil IoT à un groupe Device Update à l’aide de balises.
  • Télécharger et installer une mise à jour d’image.
  • Importer la mise à jour d’image.
  • Déployer la mise à jour d’image.
  • Afficher l’historique des déploiements de mises à jour.

Prérequis

Inscrire et configurer un appareil et un module

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

  1. Dans le Portail Azure, ouvrez la page de hub IoT associée à votre instance Device Update.
  2. Dans le volet de navigation, sélectionnez Gestion des appareils>Appareils.
  3. Sur la page Appareils, sélectionnez Ajouter un appareil.
  4. Sous ID de périphérique, entrez un nom pour l’appareil. Vérifiez que la case Générer automatiquement les clés est cochée.
  5. Cliquez sur Enregistrer. L’appareil figure dans la liste de la page Appareils.

Création d’un module d’identité

Après avoir inscrit l’appareil, créez une identité de module. Les modules sont des identités indépendantes pour les composants d’appareil IoT, ce qui permet une précision plus fine lorsque l’appareil exécute plusieurs processus.

Pour ce tutoriel, vous allez créer une identité de module pour l’agent Device Update qui s’exécute sur l’appareil. Pour en savoir plus, consultez Comprendre et utiliser les jumeaux de Module IoT Hub.

  1. Sur la page Appareils, sélectionnez l’appareil que vous avez inscrit.
  2. Dans la page de l’appareil, sélectionnez Ajouter une identité de module.
  3. Dans la page Ajouter une identité de module , sous nom de l’identité du module, entrez un nom pour le module tel que DeviceUpdateAgent.
  4. Cliquez sur Enregistrer. La nouvelle identité de module apparaît sur la page de l’appareil sous Identités de module.
  5. Sélectionnez le nom du module, puis, dans la page Détails de l’identité du module, sélectionnez l’icône Copier en regard de chaîne de connexion (clé primaire). Enregistrez cette chaîne de connexion de module à utiliser lorsque vous configurez l’agent Device Update.

Ajouter une balise de groupe à votre jumeau de module

Device Update organise automatiquement les appareils en groupes en fonction des balises 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.

Vous pouvez affecter une balise à n’importe quel appareil que Device Update gère pour affecter l’appareil à un groupe Device Update. La balise peut se trouver dans le jumeau d’appareil ou dans le jumeau de module comme dans ce didacticiel. Chaque appareil ne peut être affecté qu’à un seul groupe Device Update.

  1. Dans la page Détails de l’identité du module, sélectionnez Identité de module jumeau.

  2. Dans la page Identité de module jumeau, ajoutez une nouvelle balise de DeviceUpdateGroup au code JSON au même niveau que modelId et version, comme suit :

    "tags": {
        "DeviceUpdateGroup": "DU-simulator-tutorial"
    },
    
  3. Cliquez sur 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 que Device Update gère. Dans ce tutoriel, vous installez l’agent Device Update sur l’appareil Ubuntu 18.04 et configurez-le pour qu’il s’exécute en tant que simulateur, ce qui montre comment appliquer une mise à jour à un appareil sans modifier la configuration de l’appareil.

Remarque

Vous pouvez également utiliser azure IoT Identity Service pour approvisionner l’appareil. Pour ce faire, installer azure IoT Identity Service avant d’installer l’agent Device Update. Configurez ensuite l’agent Device Update avec "connectionType": "AIS" et laissez connectionData sous forme de chaîne vide dans le fichier de configuration.

  1. Ajoutez le référentiel de packages Microsoft, puis ajoutez la clé de signature de 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 du-config.json .

    sudo nano /etc/adu/du-config.json
    
  4. Mettez à jour du-config.json avec les exemples de valeurs suivants. Remplacez l’espace réservé <connection string> par la chaîne de connexion que vous avez copiée à partir de l’identité du module. Pour plus d’informations sur les paramètres, consultez fichier de configuration Device Update.

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

    Le fichier du-config.json modifié doit ressembler à ceci :

    {
       "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. Appuyez sur Ctrl+X pour quitter l’éditeur, puis entrez y pour enregistrer vos modifications.

  6. Pour configurer l’agent pour qu’il s’exécute en tant que simulateur, exécutez la commande suivante sur l’appareil IoT. L’agent Device Update appelle le gestionnaire de simulateur pour traiter les mises à jour qui utilisent l’extension 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
    

Obtenir les fichiers du simulateur

  1. Téléchargez et extrayez l’archive Tutorial_Simulator.zip à partir des versions GitHub Device Update dernière version ressources section sur votre ordinateur Ubuntu 18.04.

    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
    
  2. Copiez le fichier sample-du-simulator-data.json du dossier de Tutorial_Simulator extrait dans le dossier tmp .

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

    Remarque

    Si le dossier tmp n’existe pas, créez-le comme suit :

    sudo mkdir/tmp
    sudo chown root:root/tmp
    sudo chmod 1777/tmp
    
  3. Modifiez les autorisations du fichier /tmp/sample-du-simulator-data.json.

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

     sudo systemctl restart deviceupdate-agent
    

Importer la mise à jour

Téléchargez et extrayez l’archive Tutorial_Simulator.zip à partir des versions GitHub Device Update la dernière version Ressources sur votre machine de développement, si elle est différente de votre appareil IoT Ubuntu 18.04. Cette section utilise les fichiers TutorialImportManifest_Sim.importmanifest.json et adu-update-image-raspberrypi3.swu à partir du dossier Tutorial_Simulator.

Le fichier de mise à jour est le même que dans le didacticiel 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 au hub IoT configuré avec votre instance Device Update.

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

  3. Sur la page Mises à jour, sélectionnez Importer une nouvelle mise à jour.

  4. Sur la page Importer une mise à jour, sélectionnez Sélectionner dans le conteneur de stockage.

  5. Sélectionnez un compte de stockage existant ou créez un compte en sélectionnant compte de stockage.

  6. Sélectionnez un conteneur existant ou créez un conteneur en sélectionnant Conteneur. Ce conteneur est utilisé pour mettre à jour les fichiers de mise à jour pour l’importation.

    Remarque

    Pour éviter d’importer accidentellement des fichiers de mises à jour précédentes, utilisez un nouveau conteneur chaque fois que vous importez une mise à jour. Si vous n’utilisez pas de nouveau conteneur, veillez à supprimer tous les fichiers du conteneur existant.

  7. Sur la page du conteneur, sélectionnez Charger. Accédez aux fichiers TutorialImportManifest_Sim.importmanifest.json et adu-update-image-raspberrypi3.swu, puis sélectionnez Charger.

  8. Cochez les cases des deux fichiers, puis sélectionnez Sélectionner pour revenir à la page Importer la mise à jour.

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

  9. Dans la page Importer la mise à jour, passez en revue les fichiers à importer, puis sélectionnez Importer la mise à jour.

    Capture d’écran montrant les fichiers chargés à importer sous forme de mise à jour.

    Le processus d’importation commence et vous pouvez sélectionner Afficher l’historique d’importation pour afficher l’historique et l’état d’importation. Dans la page historique des mises à jour, le champ État affiche réussite une fois l’importation terminée. Vous pouvez sélectionner actualiser pour mettre à jour l’état.

La mise à jour importée apparaît désormais sur la page Mises à jour.

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.

Sélectionner le groupe d’appareils

Vous pouvez utiliser la balise de groupe que vous avez appliquée à votre appareil pour déployer la mise à jour sur le groupe d’appareils. Sélectionnez l’onglet Groupes et déploiements dans la partie supérieure de la page Mises à jour pour voir la liste des groupes et des déploiements et le graphique de conformité de la 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. Pour plus d’informations, consultez Conformité de Device Update.

Sous Nom de groupe figure la liste de tous les groupes d’appareils pour les appareils connectés à ce hub IoT et leurs mises à jour disponibles, avec des liens pour déployer les mises à jour sous État. Les appareils qui ne répondent pas aux exigences de classe d’appareil d’un groupe s’affichent dans un groupe non valide correspondant. Pour plus d’informations sur les balises et les groupes, consultez Gérer les groupes d’appareils.

Vous devez voir le groupe d’appareils qui contient l’appareil simulé que vous avez configuré dans ce tutoriel. Sélectionnez le nom du groupe pour en afficher les détails.

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

Déployer la mise à jour

  1. Dans la page détails du groupe, vous devriez voir une nouvelle mise à jour disponible pour ce groupe. 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.

  2. 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.

  3. Planifiez votre déploiement immédiatement, puis sélectionnez Créer.

  4. Accédez à l’onglet Mises à jour actuelles. Sous Détails du déploiement, État devient Actif.

  5. Une fois que votre appareil a correctement mis à jour, revenez à la page Mises à jour. Vous devez voir que vos détails de conformité et de déploiement sont mis à jour pour inclure la mise à jour installée.

Afficher l’historique des déploiements de mises à 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éé. Sélectionnez Actualiser pour voir les détails d’état les plus récents.

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

Nettoyer les ressources

Si vous passez au tutoriel suivant, conservez vos ressources Device Update et IoT Hub. Dès lors que vous n’avez plus besoin des ressources que vous avez créées pour ce tutoriel, vous pouvez les supprimer.

  1. Dans le Portail Azure, accédez au groupe de ressources qui contient les ressources.
  2. Si vous voulez supprimer toutes les ressources dans le groupe, sélectionnez Supprimer le groupe de ressources.
  3. Si vous souhaitez supprimer seulement certaines ressources, utilisez les cases à cocher pour sélectionner les ressources en question, puis sélectionnez Supprimer.