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.
  • Déployez une mise à jour de package.
  • Supervisez le déploiement de la mise à jour.

Prérequis

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.

  1. Pour commencer, sélectionnez le bouton :

    Capture d’écran du bouton déployer sur Azure pour iotedge-vm-deploy.

  2. Renseignez les zones de texte disponibles :

    Capture d’écran du modèle iotedge-vm-deploy.

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

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

    Capture d’écran du nom DNS de la machine virtuelle iotedge.

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

  4. 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. Notez que toutes les valeurs avec l’étiquette « Placer la valeur ici » doivent être définies. Consultez Configuration d’un agent DU.

    sudo nano /etc/adu/du-config.json
    
  5. Redémarrez l’agent Device Update.

    sudo systemctl restart deviceupdate-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.

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

  2. Installez les packages .deb de l’agent Device Update.

    sudo apt-get install deviceupdate-agent 
    
  3. Entrez la chaîne de connexion principale du module (ou l’appareil selon la façon dont vous avez provisionné l’appareil avec Device Update) de votre appareil IoT dans le fichier de configuration. Notez que toutes les valeurs avec l’étiquette « Placer la valeur ici » doivent être définies. Consultez Configuration d’un agent DU.

    sudo /etc/adu/du-config.json
    
  4. Redémarrez l’agent Device Update.

    sudo systemctl restart deviceupdate-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

  1. Connectez-vous au portail Azure et accédez à votre hub IoT.

  2. Dans le volet gauche, sous Appareils, recherchez votre appareil IoT Edge et accédez au jumeau d’appareil ou au jumeau de module.

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

  4. Ajoutez une nouvelle valeur d’étiquette Device Update comme indiqué ci-dessous :

        "tags": {
            "ADUGroup": "<CustomTagValue>"
        },
    

    Capture d’écran représentant un jumeau numérique avec des informations sur les étiquettes.

    Cette capture d’écran montre la section dans laquelle la balise doit être ajoutée dans le jumeau.

Importer la mise à jour

  1. 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).

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

  3. Sélectionnez l’onglet Mises à jour.

  4. Sélectionnez + Importer une nouvelle mise à jour.

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

    Capture d’écran du compte de stockage.

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

    Capture d’écran illustrant la sélection de fichiers chargés.

    Cette capture d’écran montre l’étape d’importation. Les noms de fichiers peuvent ne pas correspondre à ceux utilisés dans l’exemple.

  7. 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 le démarrage du processus d’importation.

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

    Capture d’écran du status de la tâche.

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

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.

    Capture d’écran illustrant des appareils dissociés.

  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.

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

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

Déployer la mise à jour

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

    Pour plus d’informations sur la conformité, consultez Conformité des mises à jour des appareils.

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

    Capture d’écran illustrant les détails du groupe.

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

    Capture d’écran illustrant la sélection d’une mise à jour.

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

    Capture d’écran de la création d’un déploiement.

  5. 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).

    Capture d’écran montrant le déploiement comme Actif.

  6. Affichez le graphique de conformité pour voir que la mise à jour est maintenant en cours.

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

    Capture d’écran illustrant la mise à jour réussie.

Surveiller le déploiement de la mise à jour

  1. Sélectionnez l’onglet Historique du déploiement en haut de la page.

    Capture d’écran illustrant Historique du déploiement.

  2. Sélectionnez le lien Détails en regard du déploiement que vous avez créé.

    Capture d’écran des détails du déploiement.

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