Tutoriel : Device Update pour Azure IoT Hub avec l’agent de package sur Ubuntu Server 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 un package sont des mises à jour ciblées qui modifient uniquement un composant ou une application spécifique sur l’appareil. Elles réduisent la consommation de bande passante et permettent de réduire le temps de téléchargement et d’installation des mises à jour. Les mises à jour basées sur un package permettent généralement de réduire les temps d’arrêt des appareils lorsque vous appliquez une mise à jour et d’éviter une surcharge liée à la création d’images. Elles utilisent un manifeste apt qui fournit à l’agent Device Update les informations dont il a besoin pour télécharger et installer les packages spécifiés dans le fichier manifeste APT (et leurs dépendances) à partir d’un dépôt désigné.
Ce tutoriel vous guide tout au long de la mise à jour d’Azure IoT Edge sur Ubuntu Server 18.04 x64 à l’aide de l’agent de package Device Update. Ce tutoriel décrit la mise à jour d’IoT Edge, mais vous pouvez procéder de manière similaire pour mettre à jour d’autres packages, comme le moteur de conteneur qu’il utilise.
Les outils et les concepts de ce tutoriel s’appliquent toujours, même si vous envisagez d’utiliser une autre configuration de plateforme de système d’exploitation. Terminez cette présentation d’un processus de mise à jour de bout en bout. Choisissez ensuite votre formulaire de mise à jour de la plateforme du système d’exploitation de votre choix pour étudier les détails.
Ce didacticiel vous montre comment effectuer les opérations suivantes :
- Téléchargez et installez l’agent Device Update et ses dépendances.
- Ajoutez une étiquette à votre appareil.
- Importez une mise à jour.
- Créez un groupe d’appareils.
- Déployez une mise à jour de package.
- Supervisez le déploiement de la mise à jour.
Prérequis
Si vous ne l’avez pas encore fait, créez un compte et une instance de mise à jour de l’appareil. Configurez un hub IoT.
Vous avez besoin de la chaîne de connexion pour un appareil IoT Edge.
Si vous avez utilisé le tutoriel de l’agent Simulator pour effectuer des tests préalables, exécutez la commande ci-dessous pour appeler le gestionnaire APT et déployer des mises à jour OTA de package dans ce tutoriel :
# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'
Préparer un appareil
Préparez un appareil automatiquement ou manuellement.
Utiliser le bouton de déploiement automatique sur Azure
Pour des raisons pratiques, ce tutoriel utilise un modèle Azure Resource Manager basé sur cloud-init pour vous aider à configurer rapidement une machine virtuelle Ubuntu 18.04 LTS. Il installe à la fois le runtime Azure IoT Edge et l’agent de mise à jour de l’appareil. Ensuite, il configure automatiquement l’appareil avec des informations de configuration en utilisant la chaîne de connexion de l’appareil pour un appareil IoT Edge (condition préalable) que vous fournissez. Le modèle Resource Manager évite également d’avoir à démarrer une session SSH pour effectuer l’installation.
Pour commencer, sélectionnez le bouton :
Renseignez les zones de texte disponibles :
- Abonnement: Abonnement Azure actif dans lequel déployer la machine virtuelle.
- Groupe de ressources : groupe de ressources existant ou nouvellement créé pour contenir la machine virtuelle et ses ressources associées.
- Region: région géographique dans laquelle déployer la machine virtuelle. Cette valeur est définie par défaut sur l’emplacement du groupe de ressources sélectionné.
- Préfixe d’étiquette DNS : valeur obligatoire de votre choix, utilisée pour préfixer le nom d’hôte de la machine virtuelle.
- Nom d’utilisateur administrateur : nom de l’utilisateur qui est doté de privilèges root sur le déploiement.
- Chaîne de connexion de l’appareil : Chaîne de connexion d’appareil pour un appareil créé dans votre hub IoT prévu.
- Taille de la machine virtuelle : taille de la machine virtuelle à déployer.
- Version du système d’exploitation Ubuntu : Version du système d’exploitation Ubuntu à installer sur la machine virtuelle de base. Laissez la valeur par défaut inchangée, car elle est déjà définie sur Ubuntu 18.04-LTS.
- Type d’authentification : choisissez sshPublicKey ou mot de passe selon votre préférence.
- Mot de passe ou clé d’administrateur : valeur de la clé publique SSH ou du mot de passe en fonction du choix du type d’authentification.
Une fois toutes les zones remplies, activez la case à cocher en bas de la page pour accepter les termes du contrat. Sélectionnez Acheter pour commencer le déploiement.
Vérifiez que le déploiement a complètement abouti. Patientez quelques minutes après la fin du déploiement, le temps que la post-installation et la configuration terminent l’installation d’IoT Edge et de l’agent de package Device Update.
Une ressource de machine virtuelle doit avoir été déployée dans le groupe de ressources sélectionné. Notez le nom de l’ordinateur, qui est au format
vm-0000000000000
. Notez également le nom DNSassocié, qui est au format<dnsLabelPrefix>
.<location>
.cloudapp.azure.com.Vous pouvez trouver le Nom DNS dans la section Vue d’ensemble de la machine virtuelle nouvellement déployée dans le Portail Azure.
Conseil
Pour établir une connexion SSH vers cette machine virtuelle après la configuration, utilisez le Nom DNS associé avec la commande suivante :
ssh <adminUsername>@<DNS_Name>
.Ouvrez les détails de configuration (voir comment configurer le fichier de configuration ici avec la commande ci-dessous. Définissez votre connectionType sur « AIS » et connectionData en tant que chaîne vide.
/etc/adu/du-config.json
- Redémarrez l’agent Device Update en exécutant la commande suivante :
sudo systemctl restart adu-agent
Les packages logiciels de Device Update pour Azure IoT Hub sont soumis aux termes de contrat de licence suivants :
Lisez les termes du contrat de licence avant d’utiliser un package. Le fait d’installer et d’utiliser un package revient à accepter ces termes. Si vous n’acceptez pas les termes du contrat de licence, n’utilisez pas le package en question.
Préparer manuellement un appareil
Comme pour les étapes automatisées par le script cloud-init, les étapes manuelles suivantes permettant d’installer et de configurer un appareil. Procédez comme suit pour préparer un appareil physique.
Suivez les instructions indiquant 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.
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 :
/etc/adu/du-config.json
Redémarrez l’agent Device Update en exécutant la commande suivante :
sudo systemctl restart adu-agent
Les packages logiciels de Device Update pour Azure IoT Hub sont soumis aux termes de contrat de licence suivants :
Lisez les termes du contrat de licence avant d’utiliser un package. Le fait d’installer et d’utiliser un package revient à accepter ces termes. Si vous n’acceptez pas les termes du contrat de licence, n’utilisez pas le package en question.
Ajouter une étiquette à votre appareil
Connectez-vous au portail Azure et accédez à votre hub IoT.
Dans le volet gauche, sous Appareils, recherchez votre appareil IoT Edge 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
Accédez à Device Update releases dans GitHub, puis cliquez sur la liste déroulante Assets. Téléchargez
Tutorial_IoTEdge_PackageUpdate.zip
en le sélectionnant. Extrayez le contenu du dossier pour découvrir un exemple de manifeste APT (sample-1.0.2-aziot-edge-apt-manifest.json) et son manifeste d’importation correspondant (sample-1.0.2-aziot-edge-importManifest.json).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 est 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 sélectionnez 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 le bouton 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 le groupe créé, vous voyez que la liste des groupes et le graphique de conformité des mises à jour ont été 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 devriez voir une nouvelle mise à jour disponible pour votre groupe d’appareils, avec un lien vers cette mise à jour 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 les 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 de déploiement à 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.
Conseil
Par défaut, la date et l’heure de Début est définie sur 24 heures à partir de votre heure actuelle. Veillez à sélectionner une autre date et heure si vous souhaitez que le déploiement commence plus tôt.
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 le lien Détails en regard du déploiement que vous avez créé.
Sélectionnez Actualiser pour voir les détails d’état les plus récents.
Vous avez maintenant réussi une mise à jour de package de bout en bout avec Device Update pour IoT Hub sur un appareil Ubuntu Server 18.04 x64.
Nettoyer les ressources
Quand vous n’en avez plus besoin, nettoyez votre compte de mise à jour d’appareil, votre instance et votre hub IoT. Nettoyez également l’appareil IoT Edge si vous avez créé la machine virtuelle via le bouton Déployer sur Azure. Pour nettoyer les ressources, accédez à chaque ressource, puis sélectionnez Supprimer. Nettoyez une instance Device Update avant de nettoyer le compte Device Update.
Étapes suivantes
Utilisez les tutoriels suivants pour une démonstration simple de Device Update pour IoT Hub :
- Mise à jour d’image : Démarrer avec l’image de référence Yocto Raspberry Pi 3 B+, extensible via l’open source pour générer vos propres images pour d’autres architectures, le cas échéant.
- Mise à jour de proxy : Bien démarrer avec l’utilisation de l’agent binaire Device Update pour les appareils en aval.
- Démarrer avec l’agent de référence du simulateur Ubuntu (18.04 x64).
- Tutoriel sur Device Update pour Azure IoT Hub pour le système d’exploitation en temps réel Azure.