Mettre à jour IoT Edge
S’applique à : 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 :
- Mettre à jour le sous-système de sécurité
- Mettre à jour les conteneurs d’exécution
- 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 :
Sur l’appareil, arrêtez IoT Edge à l’aide de la commande
sudo systemctl stop iotedge
et désinstallez.Sur l’appareil, mettez à niveau votre moteur de conteneur, Docker ou Moby.
Sur l’appareil, installez IoT Edge.
Si vous importez une ancienne configuration à l’aide
iotedge config import
de , 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.
Dans IoT Hub, mettez à jour le déploiement du module pour référencer les modules système les plus récents.
Sur l’appareil, démarrez IoT Edge à l’aide
sudo iotedge config apply
de .
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-service
en 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.
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.
Dans l’IoT Hub du portail Azure, sélectionnez votre appareil IoT Edge, puis sélectionnez Définir les modules.
Sous l’onglet Modules, sélectionnez Runtime Paramètres.
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 .
Sélectionnez l’onglet Hub Edge et mettez à jour la valeur d’URI d’image avec la même version souhaitée.
Sélectionnez Appliquer pour enregistrer les modifications.
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
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 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 commandeiotedge 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 :
Mettez à jour apt.
sudo apt-get update
Désinstallez la version précédente d’IoT Edge, en laissant vos fichiers de configuration en place.
sudo apt-get remove iotedge
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.
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