Partager via


Mettre à jour IoT Edge

S’applique à : icône oui IoT Edge 1.1

Important

IoT Edge la date de fin du support 1.1 était le 13 décembre 2022. Consultez la page Politique de support Microsoft pour plus d’informations sur la prise en charge de ce produit, de ce service, de cette technologie ou de cette API. Pour plus d’informations sur la mise à jour vers la dernière version d’IoT Edge, consultez Mettre à jour IoT Edge.

Chaque fois que le service IoT Edge publiera de nouvelles versions, vous pourrez mettre à 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. Le premier est le 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 globales 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. Le second composant est le runtime, constitué des modules de l’agent IoT Edge et du hub IoT Edge. Selon la façon dont vous structurez votre déploiement, le runtime peut être mis à jour à partir de l’appareil ou à distance.

Vous devez mettre à jour le IoT Edge les couches runtime et d’application utilisent la même version de version. Bien que les versions incompatibles soient prises en charge, elles ne sont pas testées ensemble. Utilisez les sections suivantes de cet article pour mettre à jour les couches runtime et application sur un appareil :

  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
    • 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.
    • Dans les paramètres du runtime de déploiement de votre appareil, vérifiez que les versions d’URI d’image edgehub et edgeagent correspondent à la version principale et secondaire 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.

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

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, reportez-vous aux étapes décrites plus loin dans cet article : Cas particulier : mise à jour de la version 1.0 ou 1.1 vers la dernière version.

Sur des appareils Linux x64, utilisez apt-get ou votre gestionnaire de package approprié pour mettre à jour le module runtime 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 les versions d’IoT Edge disponibles.

apt list -a iotedge

Si vous souhaitez effectuer la mise à jour vers la version la plus récente du module runtime, utilisez la commande suivante, qui met également à jour libiothsm-std vers la dernière version :

sudo apt-get install iotedge

Si vous souhaitez mettre à jour vers une version spécifique du module runtime, spécifiez la version dans la sortie de liste apt. Chaque fois que iotedge est mis à jour, il tente automatiquement de mettre à jour le package libiothsm-std vers la dernière version, ce qui peut entraîner un conflit de dépendance. Si vous n’allez pas utiliser la version la plus récente, veillez à cibler les deux packages avec la même version. Par exemple, la commande suivante installe une version spécifique de la version 1.1 :

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

Si la version que vous souhaitez installer n’est pas disponible par le biais de apt-get, vous pouvez utiliser curl pour cibler n’importe quelle version du référentiel IoT Edge. Quelle que soit la version que vous souhaitez installer, localisez les fichiers libiothsm-STD et iotedge correspondant à votre appareil. Pour chaque fichier, cliquez avec le bouton droit de la souris sur le lien du fichier, puis copiez l’adresse du lien. Utilisez l’adresse du lien pour installer les versions spécifiques de ces composants :

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

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.

Rechercher la version du conteneur dans les journaux d’activité

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 proposé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 proposé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 de runtime et les démarre automatiquement sur votre appareil à nouveau.

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

Si vous utilisez des étiquettes spécifiques dans votre déploiement (par exemple, mcr.microsoft.com/azureiotedge-hub:1.1.1), il vous suffit de mettre à jour l’étiquette 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. Dans la section Modules IoT Edge, sélectionnez Paramètres d'exécution.

    Configurer les paramètres d'exécution

  3. Dans Paramètres d’exécution, mettez à jour la valeur de l’image pour Edge Hub avec la version souhaitée. Ne sélectionnez pas encore Enregistrer.

    Mettre à jour la version de l’image Edge Hub.

  4. Réduisez les paramètres Edge Hub, ou faites défiler la liste vers le bas et mettez à jour la valeur de l’image pour l’agent Edge avec la même version souhaitée.

    Mettre à jour la version de l’agent Edge Hub

  5. Cliquez sur Enregistrer.

  6. Sélectionnez Vérifier + Créer, vérifiez le déploiement, puis sélectionnez Créer.

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, tel le certificat d’identité d’appareil, l’autorité de certification de l’appareil et le bundle de confiance 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 à partir 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’une clé secrète est chiffrée à nouveau par un module, elle est enregistrée 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. Notez que 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 a pris fin et n’est pas incluse dans Edge Hub 1.3 ou version ultérieure. 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
    

À pérsent que le service IoT Edge s’exécutant sur vos appareils a été mis à jour, suivez les étapes de cet article pour également Mettre à jour les conteneurs du runtime.

É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