Mettre à jour IoT Edge

S’applique à :IoT Edge 1.4 checkmark IoT Edge 1.4

Important

IoT Edge 1.4 est la version prise en charge. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Chaque fois que le service IoT Edge publie de nouvelles versions, mettez à jour vos appareils IoT Edge pour obtenir les dernières fonctionnalités et améliorations de la sécurité. Cet article fournit des informations sur la façon de mettre à jour vos appareils IoT Edge quand une nouvelle version est disponible.

Deux composants logiques d’un appareil IoT Edge doivent être mis à jour si vous souhaitez passer à une version plus récente.

  • Sous-système de sécurité : bien que l’architecture du sous-système de sécurité ait changé entre la version 1.1 et la version 1.2, ses responsabilités restent les mêmes. Il s’exécute sur l’appareil, gère les tâches basées sur la sécurité et démarre les modules au démarrage de l’appareil. Le sous-système de sécurité ne peut être mis à jour qu’à partir de l’appareil lui-même.

  • Runtime IoT Edge : le runtime IoT Edge est constitué des modules ioT Edge Hub (edgeHub) et De l’agent IoT Edge (edgeAgent). Selon la façon dont vous structurez votre déploiement, le runtime peut être mis à jour à partir de l’appareil ou à distance.

Comment effectuer la mise à jour

Utilisez les sections de cet article pour mettre à jour le sous-système de sécurité et les conteneurs d’exécution sur un appareil.

Versions correctives

Lorsque vous effectuez une mise à niveau entre les versions des correctifs , par exemple 1.4.1 vers la version 1.4.2, l’ordre de mise à jour n’est pas important. Vous pouvez mettre à niveau le sous-système de sécurité ou les conteneurs d’exécution avant ou après l’autre. Pour effectuer une mise à jour entre les mises à jour correctives :

  1. Mettre à jour le sous-système de sécurité
  2. Mettre à jour les conteneurs d’exécution
  3. Vérifier la correspondance des versions

Vous pouvez résoudre les problèmes du processus de mise à niveau à tout moment.

Versions majeures ou mineures

Lorsque vous effectuez une mise à niveau entre des versions majeures ou mineures, par exemple de 1.1 à 1.4, mettez à jour le sous-système de sécurité et les conteneurs d’exécution. Avant une version, nous testons le sous-système de sécurité et la combinaison de versions du conteneur runtime. Pour effectuer une mise à jour entre les versions majeures ou mineures du produit :

  1. Sur l’appareil, arrêtez IoT Edge à l’aide de la commande sudo systemctl stop iotedge et désinstallez.

  2. Sur l’appareil, mettez à niveau votre moteur de conteneur, Docker ou Moby.

  3. Sur l’appareil, installez IoT Edge.

    Si vous importez une ancienne configuration à l’aide iotedge config importde , modifiez l’image [agent.config] du fichier généré /etc/aziot/config.toml pour utiliser l’image 1.4 pour edgeAgent.

    Pour plus d’informations, consultez Configurer les paramètres de l’appareil IoT Edge.

  4. Dans IoT Hub, mettez à jour le déploiement du module pour référencer les modules système les plus récents.

  5. Sur l’appareil, démarrez IoT Edge à l’aide sudo iotedge config applyde .

Vous pouvez résoudre les problèmes du processus de mise à niveau à tout moment.

Mettre à jour le sous-système de sécurité

Le sous-système de sécurité IoT Edge comprend un ensemble de composants natifs qui doit être mis à jour à l’aide du gestionnaire de package sur l’appareil IoT Edge.

Vérifiez la version du sous-système de sécurité qui s’exécute sur votre appareil à l’aide de la commande iotedge version. Si vous utilisez IoT Edge pour Linux sur Windows, vous devez vous connecter par protocole SSH à la machine virtuelle Linux pour vérifier la version.

Important

Si vous mettez à jour un appareil de la version 1.0 ou 1.1 vers la dernière version, il existe des différences entre les processus d’installation et de configuration qui nécessitent des étapes supplémentaires. Pour plus d’informations, consultez les étapes décrites plus loin dans cet article : Cas spécial : Mettre à jour de la version 1.0 ou 1.1 vers la dernière version.

Sur les appareils Linux x64, utilisez apt-get ou votre gestionnaire de package approprié pour mettre à jour le sous-système de sécurité vers la dernière version.

Mettez à jour apt :

sudo apt-get update

Remarque

Pour savoir comment obtenir la dernière configuration de dépôt Microsoft, consultez les étapes préliminaires pour Installer IoT Edge.

Vérifiez quelles versions d’IoT Edge sont disponibles :

apt list -a aziot-edge

Mettre à jour IoT Edge :

sudo apt-get install aziot-edge defender-iot-micro-agent-edge

L’exécution apt-get install aziot-edge met à niveau le sous-système de sécurité et installe le service d’identité, aziot-identity-serviceen tant que dépendance requise.

Il est recommandé d’installer le micro-agent avec l’agent Edge pour activer la supervision et le renforcement de la sécurité de vos appareils Edge. Pour en savoir plus sur Microsoft Defender pour IoT, consultez Présentation de Microsoft Defender pour IoT pour les générateurs d’appareils.

Ensuite, réappliquez la configuration pour garantir que le système est entièrement mis à jour.

sudo iotedge config apply

Mettre à jour les conteneurs du runtime

La façon dont vous mettez à jour les conteneurs de l’agent IoT Edge et du hub IoT Edge diffère selon que vous utilisez des étiquettes évolutives (par exemple, 1.1) ou des étiquettes spécifiques (par exemple, 1.1.1) dans votre déploiement.

Vérifiez la version des modules de l’agent IoT Edge et du hub IoT Edge sur votre appareil à l’aide des commandes iotedge logs edgeAgent ou iotedge logs edgeHub. Si vous utilisez IoT Edge pour Linux sur Windows, vous devez vous connecter par protocole SSH à la machine virtuelle Linux pour vérifier les versions des modules d’exécution.

Screenshot of where to find the container version in console logs.

Comprendre les étiquettes IoT Edge

Les images de l’agent IoT Edge et du hub IoT Edge sont marquées avec la version IoT Edge à laquelle elles sont associées. Il existe deux façons d’utiliser des étiquettes avec les images de runtime :

  • Étiquettes évolutives : utilisez uniquement les deux premières valeurs du numéro de version pour obtenir la dernière image qui correspond à ces chiffres. Par exemple, la version 1.1 est mise à jour lorsqu’une nouvelle mise en production pointe vers la dernière version 1.1.x. Si le runtime du conteneur sur votre appareil IoT Edge réextrait l’image, les modules de runtime sont mis à jour vers la dernière version. Les déploiements à partir du portail Azure adoptent par défaut des étiquettes évolutives. Cette approche est suggérée à des fins de développement.

  • Étiquettes spécifiques : utilisez les trois valeurs du numéro de version pour définir explicitement la version de l’image. Par exemple, la version 1.1.0 ne change pas après sa mise en production initiale. Vous pouvez déclarer un nouveau numéro de version dans le manifeste de déploiement quand vous êtes prêt à effectuer une mise à jour. Cette approche est suggérée à des fins de production.

Mettre à jour une image avec des étiquettes évolutives

Si vous utilisez des étiquettes évolutives dans votre déploiement (par exemple, mcr.microsoft.com/azureiotedge-hub:1.1), vous devez forcer le runtime du conteneur sur votre appareil à extraire la dernière version de l’image.

Supprimez la version locale de l’image de votre appareil IoT Edge. Sur les ordinateurs Windows, la désinstallation du sous-système de sécurité entraîne également la suppression des images du runtime, ce qui permet de sauter cette étape.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

Vous devrez peut-être utiliser l’indicateur -f (forcer) pour supprimer les images.

Le service IoT Edge extrait les dernières versions des images runtime et les redémarre automatiquement sur votre appareil.

Mettre à jour une image avec des étiquettes spécifiques

Si vous utilisez des balises spécifiques dans votre déploiement (par exemple, mcr.microsoft.com/azureiotedge-hub :1.4), il vous suffit de mettre à jour la balise dans votre manifeste de déploiement et d’appliquer les modifications à votre appareil.

  1. Dans l’IoT Hub du portail Azure, sélectionnez votre appareil IoT Edge, puis sélectionnez Définir les modules.

  2. Sous l’onglet Modules, sélectionnez Runtime Paramètres.

    Screenshot that shows location of the Runtime Settings tab.

  3. Dans le Paramètres runtime, mettez à jour la valeur de l’URId’image dans la section Agent Edge avec la version souhaitée. Ne sélectionnez pas encore Appliquer .

    Screenshot that shows where to update the image URI with your version in the Edge Agent.

  4. Sélectionnez l’onglet Hub Edge et mettez à jour la valeur d’URI d’image avec la même version souhaitée.

    Screenshot that shows where to update the image URI with your version in the Edge Hub.

  5. Sélectionnez Appliquer pour enregistrer les modifications.

  6. Sélectionnez Vérifier + créer, passer en revue le déploiement comme indiqué dans le fichier JSON, puis sélectionner Créer.

Vérifier que les versions correspondent

  1. Sur votre appareil, utilisez iotedge version pour vérifier la version du sous-système de sécurité. La sortie inclut les numéros de version principale, mineure et de révision. Par exemple, iotedge 1.4.2.

  2. Dans les paramètres d’exécution du déploiement de votre appareil, vérifiez que les versions d’URI d’image edgeHub et edgeAgent correspondent à la version principale et mineure du sous-système de sécurité. Si la version du sous-système de sécurité est 1.4.2, les versions d’image sont 1.4. Par exemple, mcr.microsoft.com/azureiotedge-hub:1.4 et mcr.microsoft.com/azureiotedge-agent:1.4.

Remarque

Mettez à jour le sous-système de sécurité IoT Edge et les conteneurs d’exécution vers la même version de mise en production prise en charge. Bien que des versions incompatibles soient prises en charge, nous n’avons pas testé toutes les combinaisons de versions.

Pour rechercher la dernière version d’Azure IoT Edge, consultez Versions d’Azure IoT Edge.

Cas particulier : mise à jour de la version 1.0 ou 1.1 vers la dernière version

Depuis la version 1.2, le service IoT Edge utilise un nouveau nom de package et présente quelques différences dans les processus d’installation et de configuration. Si vous avez un appareil IoT Edge exécutant la version 1.0 ou 1.1, suivez ces instructions pour savoir comment effectuer la mise à jour vers la dernière version.

Voici quelques-unes des principales différences entre la dernière version et la version 1.1 et les versions antérieures :

  • Le nom du package est passé de iotedge à aziot-Edge.
  • Le package libiothsm-STD n’est plus utilisé. Si vous avez utilisé le package standard fourni dans le cadre de la mise en production d’IoT Edge, vos configurations peuvent être transférées vers la nouvelle version. Si vous avez utilisé une autre implémentation de libiothsm-std, tous les certificats fournis par l’utilisateur comme le certificat d’identité de l’appareil, l’autorité de certification d’appareil et le bundle d’approbation doivent être reconfigurés.
  • Un nouveau service d’identité, aziot-identity-service, a été introduit dans le cadre de la mise en production 1.2. Ce service gère l’approvisionnement et la gestion des identités pour IoT Edge et pour d’autres composants d’appareil qui doivent communiquer avec IoT Hub, comme Device Update pour IoT Hub.
  • Le fichier de configuration par défaut a un nouveau nom et un nouvel emplacement. Les informations de configuration de votre appareil qui se trouvaient auparavant dans /etc/iotedge/config.yaml sont désormais supposées se trouver dans /etc/aziot/config.toml par défaut. La commande iotedge config import peut aider à migrer les informations de configuration de l’ancien emplacement et de l’ancienne syntaxe.
    • La commande d’importation ne peut pas détecter ou modifier les règles d’accès au module de plateforme sécurisée (TPM) d’un appareil. Si votre appareil utilise l’attestation TPM, vous devez mettre à jour manuellement le fichier/etc/udev/rules.d/tpmaccess.rules pour accorder l’accès au service aziottpm. Pour plus d’informations, consultez Donner à IoT Edge l’accès au TPM.
  • L’API de charge de travail dans la dernière version enregistre les secrets chiffrés dans un nouveau format. Si vous effectuez une mise à niveau d’une version antérieure vers la dernière version, la clé de chiffrement principale existante est importée. L’API de charge de travail peut lire les secrets enregistrés dans le format précédent à l’aide de la clé de chiffrement importée. Toutefois, l’API de charge de travail ne peut pas écrire de secrets chiffrés dans l’ancien format. Une fois qu’un module chiffre à nouveau un secret, il est enregistré dans le nouveau format. Les secrets chiffrés dans la dernière version ne peuvent pas être lus par le même module dans la version 1.1. Si vous conservez des données chiffrées dans un dossier ou un volume monté par l’hôte, créez toujours une copie de sauvegarde des données avant d’effectuer la mise à niveau afin de conserver la possibilité de repasser à une version antérieure si nécessaire.
  • Pour une compatibilité descendante lors de la connexion d’appareils qui ne prennent pas en charge TLS 1.2, vous pouvez configurer Edge Hub de manière à toujours accepter TLS 1.0 ou 1.1 via la variable d’environnement SslProtocols. La prise en charge de TLS 1.0 et 1.1 dans IoT Hub est considérée comme héritée et peut également être supprimée de Edge Hub dans les versions ultérieures.  Pour éviter tout problème futur, utilisez TLS 1.2 comme seule version de TLS lors de la connexion à Edge Hub ou à IoT Hub.
  • La préversion du répartiteur MQTT expérimental dans Edge Hub 1.2 s’est terminée et n’est pas incluse dans Edge Hub 1.4. Nous continuons de peaufiner nos plans pour un répartiteur MQTT en fonction des commentaires reçus. Dans l’attente, si vous avez besoin d’un répartiteur MQTT conforme aux normes sur IoT Edge, envisagez de déployer un répartiteur open source comme Mosquitto en tant que module IoT Edge.
  • À compter de la version 1.2, lorsqu’une image de sauvegarde est supprimée d’un conteneur, le conteneur continue à s’exécuter et il persiste entre les redémarrages. Dans la version 1.1, lorsqu’une image de sauvegarde est supprimée, le conteneur est immédiatement recréé et cette image est mise à jour.

Avant d’automatiser tout processus de mise à jour, vérifiez qu’il fonctionne sur des machines de test.

Lorsque vous êtes prêt, procédez comme suit pour mettre à jour IoT Edge sur vos appareils :

  1. Mettez à jour apt.

    sudo apt-get update
    
  2. Désinstallez la version précédente d’IoT Edge, en laissant vos fichiers de configuration en place.

    sudo apt-get remove iotedge
    
  3. Installez la version la plus récente d’IoT Edge, ainsi que le service d’identité IoT et le micro-agent Microsoft Defender pour IoT pour Edge.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Il est recommandé d’installer le micro-agent avec l’agent Edge pour activer la supervision et le renforcement de la sécurité de vos appareils Edge. Pour en savoir plus sur Microsoft Defender pour IoT, consultez Présentation de Microsoft Defender pour IoT pour les générateurs d’appareils.

  1. Importez votre ancien fichier config. yaml dans son nouveau format, puis appliquez les informations de configuration.

    sudo iotedge config import
    

Maintenant que le dernier service IoT Edge s’exécute sur vos appareils, vous devez également mettre à jour les conteneurs d’exécution vers la dernière version. Le processus de mise à jour pour les conteneurs d’exécution est identique au processus de mise à jour du service IoT Edge.

Résolution des problèmes

Vous pouvez afficher les journaux de votre système à tout moment en exécutant les commandes suivantes à partir de votre appareil.

  • Commencez à résoudre les problèmes à l’aide de la commande case activée. Il exécute une collection de tests de configuration et de connectivité pour les problèmes courants.

    sudo iotedge check --verbose
    
  • Pour afficher l’état du système IoT Edge, exécutez :

    sudo iotedge system status 
    
  • Pour afficher les journaux des composants hôtes, exécutez :

    sudo iotedge system logs
    
  • Pour case activée pour les problèmes récurrents signalés avec edgeAgent et edgeHub, exécutez :

    Veillez à remplacer <module> par votre propre nom de module. S’il n’y a aucun problème, vous ne voyez aucune sortie.

    sudo iotedge logs <module>
    

Pour plus d’informations, consultez Résoudre les problèmes de votre appareil IoT Edge.

Étapes suivantes

Déterminez les dernières versions d’Azure IoT Edge.

Restez informé des dernières mises à jour et annonces en consultant le blog Internet of Things