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
- Une machine physique ou virtuelle Ubuntu 18.04 x64
- Un compte et une instance Device Update configurés avec un hub IoT
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.
- Dans le Portail Azure, ouvrez la page de hub IoT associée à votre instance Device Update.
- Dans le volet de navigation, sélectionnez Gestion des appareils>Appareils.
- Sur la page Appareils, sélectionnez Ajouter un appareil.
- 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.
- 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.
- Sur la page Appareils, sélectionnez l’appareil que vous avez inscrit.
- Dans la page de l’appareil, sélectionnez Ajouter une identité de module.
- Dans la page Ajouter une identité de module , sous nom de l’identité du module, entrez un nom pour le module tel que DeviceUpdateAgent.
- Cliquez sur Enregistrer. La nouvelle identité de module apparaît sur la page de l’appareil sous Identités de module.
- 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.
Dans la page Détails de l’identité du module, sélectionnez Identité de module jumeau.
Dans la page Identité de module jumeau, ajoutez une nouvelle balise de
DeviceUpdateGroup
au code JSON au même niveau quemodelId
etversion
, comme suit :"tags": { "DeviceUpdateGroup": "DU-simulator-tutorial" },
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.
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
Installez les packages .deb de l’agent Device Update.
sudo apt-get update sudo apt-get install deviceupdate-agent
Ouvrez le fichier de configuration de l’agent du-config.json .
sudo nano /etc/adu/du-config.json
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" } ] }
Appuyez sur Ctrl+X pour quitter l’éditeur, puis entrez y pour enregistrer vos modifications.
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
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 exemple1.0.0
.wget https://github.com/Azure/iot-hub-device-update/releases/download/<release_version>/Tutorial_Simulator.zip
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
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
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.
Sur votre ordinateur de développement, connectez-vous au portail Azure et accédez au hub IoT configuré avec votre instance Device Update.
Dans le volet de navigation, sélectionnez Gestion des appareils>Mises à jour.
Sur la page Mises à jour, sélectionnez Importer une nouvelle mise à jour.
Sur la page Importer une mise à jour, sélectionnez Sélectionner dans le conteneur de stockage.
Sélectionnez un compte de stockage existant ou créez un compte en sélectionnant compte de stockage.
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.
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.
Cochez les cases des deux fichiers, puis sélectionnez Sélectionner pour revenir à la page Importer la mise à jour.
Dans la page Importer la mise à jour, passez en revue les fichiers à importer, puis sélectionnez Importer la 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.
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.
Déployer la mise à jour
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.
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.
Planifiez votre déploiement immédiatement, puis sélectionnez Créer.
Accédez à l’onglet Mises à jour actuelles. Sous Détails du déploiement, État devient Actif.
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
Revenez à la page des détails du groupe et sélectionnez l’onglet Historique du déploiement.
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.
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.
- Dans le Portail Azure, accédez au groupe de ressources qui contient les ressources.
- Si vous voulez supprimer toutes les ressources dans le groupe, sélectionnez Supprimer le groupe de ressources.
- Si vous souhaitez supprimer seulement certaines ressources, utilisez les cases à cocher pour sélectionner les ressources en question, puis sélectionnez Supprimer.