Tutoriel : Device Update pour Azure IoT Hub avec l’agent de référence du simulateur Ubuntu (18.04 x64)
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 cela ne présente pas les mêmes défis que les packages et leurs dépendances. En raison de sa nature atomique, le modèle de basculement A/B peut être adopté facilement.
Ce tutoriel vous guide tout au long des étapes de mise à jour basée sur une image de bout en bout à l’aide de Device Update pour IoT Hub.
Ce didacticiel vous montre comment effectuer les opérations suivantes :
- Télécharger et installer une image.
- Ajouter une étiquette à votre appareil IoT.
- Importez une mise à jour.
- Créez un groupe d’appareils.
- Déployez une mise à jour d’image.
- Supervisez le déploiement de la mise à jour.
Prérequis
Si ce n’est déjà fait, créez un compte et une instance Device Update, et configurez un hub IoT.
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.
Ajouter un appareil à Azure IoT Hub
Une fois que l’agent de mise à jour des appareils s’exécute sur un appareil IoT, vous devez ajouter l’appareil à IoT Hub. Dans IoT Hub, une chaîne de connexion est générée pour un appareil particulier.
À partir du portail Azure, démarrez Device Update pour IoT Hub.
Créez un appareil.
Dans le volet gauche, accédez à Appareils. Sélectionnez ensuite Nouveau.
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.
Sélectionnez Enregistrer.
À 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.
Dans la vue de l’appareil, sélectionnez l’icône Copier à côté de Chaîne de connexion principale.
Collez les caractères copiés à un certain emplacement en vue d’une utilisation ultérieure lors des étapes suivantes :
Cette chaîne copiée est la chaîne de connexion de votre appareil.
Installer l’agent Device Update pour le tester comme simulateur
Suivez les instructions expliquant comment installer le runtime Azure IoT Edge.
Notes
L’agent Device Update ne dépend pas d’IoT Edge. Toutefois, il s’appuie sur le démon de service d’identité IoT installé avec IoT Edge (versions 1.2.0 et ultérieures) pour obtenir une identité et se connecter à IoT Hub.
Bien que ce point ne soit pas abordé dans ce tutoriel, le démon de service d’identité IoT peut être installé en mode autonome sur des appareils IoT basés sur Linux. La séquence d’installation est importante. L’agent de package Device Update doit être installé après le service d’identité IoT. Sinon, l’agent de package n’est pas inscrit en tant que composant autorisé pour établir une connexion à IoT Hub.
Ensuite, installez les packages .deb de l’agent Device Update.
sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt
Entrez la chaîne de connexion principale du module (ou l’appareil selon la façon dont vous avez configuré l’appareil avec Device Update) de votre appareil IoT dans le fichier de configuration en exécutant la commande suivante :
sudo nano /etc/adu/du-config.json
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 APT ('microsoft/apt:1') :
sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so --update-type 'microsoft/apt:1'
Pour inscrire et appeler le gestionnaire du simulateur, utilisez le format suivant, en remplissant les espaces réservés :
sudo /usr/bin/AducIotAgent --register--content-handler <full path to the handler file> --update-type <update type name>
Vous aurez besoin du fichier
sample-du-simulator-data.json
à partir du fichierTutorial_Simulator.zip
téléchargé dans les conditions préalables.Ouvrez le fichier
sample-du-simulator-data.json
et copiez le contenu dans le Presse-papiers :nano sample-du-simulator-data.json
Sélectionnez le contenu du fichier et appuyez sur Ctrl+C. Appuyez sur Ctrl+X pour fermer le fichier et n’enregistrez pas les modifications.
Exécutez la commande suivante pour créer et modifier le fichier
du-simulator-data.json
dans le dossier tmp :sudo nano /tmp/du-simulator-data.json
Appuyez sur Ctrl+V pour coller le contenu dans l’éditeur. Sélectionnez Ctrl+X pour enregistrer les modifications, puis Y.
Modifiez les autorisations :
sudo chown adu:adu /tmp/du-simulator-data.json sudo chmod 664 /tmp/du-simulator-data.json
Si /tmp n’existe pas :
sudo mkdir/tmp sudo chown root:root/tmp sudo chmod 1777/tmp
Redémarrez l’agent Device Update en exécutant la commande suivante :
sudo systemctl restart adu-agent
Les logiciels de Device Update pour Azure IoT Hub sont soumis aux termes de contrat de licence suivants :
Lisez les termes de contrat de licence avant d’utiliser l’agent. Le fait de procéder à l’installation et à l’utilisation revient à accepter ces termes. Si vous n’acceptez pas les termes du contrat de licence, n’utilisez pas l’agent Device Update pour IoT Hub.
Notes
Une fois que vous avez terminé les tests avec le simulateur, exécutez la commande ci-dessous pour appeler le gestionnaire APT et déployer des mises à jour OAT de package :
# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
Ajouter une étiquette à votre appareil
Connectez-vous au portail Azure et accédez à votre hub IoT.
Sous Appareils dans le volet gauche, recherchez votre appareil IoT et accédez au jumeau d’appareil ou au jumeau de module.
Dans le jumeau de module du module d’agent Device Update, supprimez toutes les valeurs d’étiquette Device Update existantes en leur affectant la valeur Null. Si vous utilisez l’identité d’appareil avec l’agent Device Update, effectuez ces changements sur le jumeau d’appareil.
Ajoutez une nouvelle valeur d’étiquette Device Update comme indiqué ci-dessous :
"tags": { "ADUGroup": "<CustomTagValue>" }
Importer la mise à jour
Vous aurez besoin des fichiers
TutorialImportManifest_Sim.importmanifest.json
etadu-update-image-raspberrypi3.swu
duTutorial_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.Connectez-vous au portail Azure et accédez à votre hub IoT avec Device Update. Dans le volet gauche, sous Gestion automatique des appareils, sélectionnez Mises à jour.
Sélectionnez l’onglet Mises à jour.
Sélectionnez + Importer une nouvelle mise à jour.
Sélectionnez + Sélectionner dans le conteneur de stockage. 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 utilisant + 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.
Dans votre conteneur, sélectionnez Charger et accédez aux fichiers que vous avez téléchargés à l’étape 1. Une fois que vous avez sélectionné tous vos fichiers de mise à jour, sélectionnez Charger. Sélectionnez ensuite le bouton Sélectionner pour revenir à la page Importer la mise à jour.
Cette capture d’écran montre l’étape d’importation. Les noms de fichiers peuvent ne pas correspondre à ceux utilisés dans l’exemple.
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.
Le processus d’importation commence et l’écran passe à la section Historique d’importation. 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.
En savoir plus sur l’importation des mises à jour.
Créer un groupe de mise à jour
Accédez à l’onglet Groupes et déploiements en haut de la page.
Sélectionnez Ajouter un groupe pour créer un groupe.
Sélectionnez une étiquette IoT Hub et une classe d’appareil dans la liste. Sélectionnez ensuite Créer un groupe.
Une fois que le groupe est créé, le graphique de conformité de mise à jour et la liste des groupes sont mis à 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.
Vous voyez maintenant le groupe que vous venez de créer ainsi que toutes les mises à jour disponibles pour les appareils dans le 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 déployer la meilleure mise à jour disponible sur le nouveau groupe défini par l’utilisateur à partir de cet affichage, sélectionnez Déployer à côté du groupe.
En savoir plus sur l’ajout d’étiquettes et la création de groupes de mises à jour.
Déployer la mise à jour
Une fois le groupe créé, vous devez voir une nouvelle mise à jour disponible pour votre groupe d’appareils. Un lien vers la mise à jour doit s’afficher sous Meilleure mise à jour. Vous devrez peut-être actualiser une fois. En savoir plus sur la conformité des mises à jour.
Sélectionnez le groupe cible en sélectionnant le nom du groupe. Vous êtes redirigé vers Détails du groupe sous Informations de base du groupe.
Pour démarrer le déploiement, accédez à l’onglet Déploiement actuel. Sélectionnez le lien Déployer à côté de la mise à jour souhaitée dans la section Mises à jour disponibles. La meilleure mise à jour disponible pour un groupe donné est indiquée par la mention Optimale.
Planifiez votre déploiement pour qu’il démarre immédiatement ou plus tard. Sélectionnez ensuite Créer.
Sous Détails du déploiement, État devient Actif. La mise à jour déployée est marquée avec la mention (déploiement en cours).
Affichez le graphique de conformité pour voir que la mise à jour est maintenant en cours.
Une fois votre appareil correctement mis à jour, vous voyez 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
Sélectionnez l’onglet Historique du déploiement en haut de la page.
Sélectionnez Détails à côté du déploiement que vous avez créé.
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
Lorsque vous n’en avez plus besoin, nettoyez le compte, l’instance et le hub IoT Device Update, ainsi que l’appareil IoT.