Créer et provisionner un appareil IoT Edge sur Linux avec des clés symétriques

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.

Cet article fournit des instructions de bout en bout pour inscrire et provisionner un appareil IoT Edge Linux incluant l’installation d’IoT Edge.

Chaque appareil qui se connecte à un hub IoT possède un ID d’appareil qui sert au suivi des communications cloud-à-appareil ou appareil-à-cloud. Vous configurez un appareil avec ses informations de connexion qui incluent ce qui suit :

  • Nom d’hôte du hub IoT
  • ID de périphérique
  • Détails de l’authentification pour se connecter à IoT Hub

Les étapes de cet article suivent un processus appelé approvisionnement manuel qui consiste à connecter un seul appareil à son hub IoT. Avec le provisionnement manuel, vous avez le choix entre deux méthodes d’authentification des appareils IoT Edge :

  • Clés symétriques : quand vous créez une identité d’appareil dans IoT Hub, le service crée deux clés. Vous placez l’une des clés sur l’appareil, lequel présente la clé à IoT Hub au moment de l’authentification.

    Cette méthode d’authentification est plus rapide pour commencer, mais moins sûre que l’autre.

  • X.509 autosigné : vous créez deux certificats d’identité X.509 que vous placez sur l’appareil. Quand vous créez une identité d’appareil dans IoT Hub, vous fournissez les empreintes numériques des deux certificats. Quand l’appareil s’authentifie auprès de IoT Hub, il présente un certificat et IoT Hub vérifie que le certificat correspond à son empreinte numérique.

    Cette méthode d’authentification étant plus sécurisée, elle est recommandée dans les scénarios de production.

Cet article traite de l’utilisation de clés symétriques comme méthode d’authentification. Si vous souhaitez utiliser des certificats X.509, consultez Créer et approvisionner un appareil IoT Edge sur Linux à l’aide de certificats X.509.

Remarque

Si vous avez de nombreux appareils à configurer et que vous ne souhaitez pas les provisionner manuellement, consultez l’un des articles suivants pour découvrir comment IoT Edge fonctionne avec le service IoT Hub Device Provisioning :

Prérequis

Cet article présente comment inscrire votre appareil IoT Edge et installer IoT Edge (également appelé runtime IoT Edge) sur votre appareil. Vérifiez que vous disposez de l’outil de gestion des appareils de votre choix, par exemple Azure CLI, et des exigences d’appareil avant d’inscrire et d’installer votre appareil.

Outils de gestion des appareils

Vous avez le choix d’utiliser le portail Azure, Visual Studio Code ou Azure CLI pour inscrire votre appareil. Chaque utilitaire a ses propres prérequis ou doit être installé :

Un hub IoT gratuit ou standard dans votre abonnement Azure.

Exigences relatives aux appareils

Un appareil Linux x64, ARM32 ou ARM64.

Microsoft publie des packages d’installation pour divers systèmes d’exploitation.

Pour les dernières informations sur les systèmes d’exploitation actuellement pris en charge pour les scénarios de production, consultez Systèmes pris en charge par Azure IoT Edge.

Extensions Visual Studio Code

Si vous utilisez Visual Studio Code, voici des extensions Azure IoT utiles qui facilitent le processus de création et de gestion d’appareils.

Installez les extensions Azure IoT Edge et Azure IoT Hub :

Inscrire votre appareil

Vous avez le choix d’utiliser le portail Azure, Visual Studio Code ou Azure CLI pour inscrire votre appareil.

Dans votre hub IoT dans le portail Azure, les appareils IoT Edge sont créés et managés séparément des appareils IoT qui ne sont pas compatibles avec Edge.

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

  2. Dans le volet de gauche, sélectionnez Appareils dans le menu, puis sélectionnez Ajouter un appareil.

  3. Dans la page Créer un appareil, fournissez les informations suivantes :

    • Créez un ID d’appareil descriptif, par exemple my-edge-device-1 (tout en minuscules). Copiez cet ID d’appareil car vous en aurez besoin plus tard.
    • Cochez la case Appareil IoT Edge.
    • Sélectionnez Clé symétrique comme type d’authentification.
    • Utilisez les paramètres par défaut pour générer automatiquement les clés d’authentification qui connectent le nouvel appareil à votre hub.
  4. Sélectionnez Enregistrer.

Vous devez voir le nouvel appareil listé dans votre hub IoT.

Maintenant que vous avez un appareil inscrit dans IoT Hub, vous pouvez récupérer les informations d’approvisionnement utilisées pour terminer l’installation et l’approvisionnement du runtime IoT Edge à l’étape suivante.

Afficher les appareils inscrits et récupérer les informations de provisionnement

Les appareils qui utilisent l’authentification de clé symétrique ont besoin de leurs chaînes de connexion pour terminer l’installation et l’approvisionnement du runtime IoT Edge. La chaîne de connexion est générée pour votre appareil IoT Edge quand vous créez l’appareil. Pour Visual Studio Code et Azure CLI, la chaîne de connexion est dans la sortie JSON. Si vous utilisez le Portail Azure pour créer l’appareil, vous trouverez la chaîne de connexion à partir de l’appareil lui-même. Lorsque vous sélectionnez votre appareil dans votre hub IoT, il est listé comme Primary connection string sur la page de l’appareil.

Les appareils compatibles avec Edge qui se connectent à votre hub IoT sont répertoriés dans la page Appareils de votre hub IoT. Si vous avez plusieurs appareils, vous pouvez filtrer la liste en sélectionnant le type Appareils Iot Edge, puis sélectionnez Appliquer.

Pour configurer votre appareil, vous avez besoin de la chaîne de connexion qui établit un lien entre votre appareil physique et son identité dans le hub IoT. Les appareils qui s’authentifient avec des clés symétriques disposent des chaînes de connexion pouvant être copiées dans le portail. Pour trouver votre chaîne de connexion dans le portail :

  1. Dans la page Appareils, sélectionnez l’ID d’appareil IoT Edge dans la liste.
  2. Copiez la valeur de Chaîne de connexion principale ou Chaîne de connexion secondaire. Les deux clés fonctionnent.

Installer IoT Edge

Dans cette section, vous allez préparer votre machine virtuelle ou votre appareil physique Linux à IoT Edge. Ensuite, vous installez IoT Edge.

Exécutez les commandes suivantes pour ajouter le dépôt de packages, puis ajoutez la clé de signature du package Microsoft à votre liste de clés approuvées.

Important

Le 30 juin 2022, Raspberry Pi OS Stretch a été retiré de la liste de prise en charge des systèmes d’exploitation de niveau 1. Pour éviter des vulnérabilités de sécurité potentielles, mettez à jour votre système d’exploitation hôte vers Bullseye.

L’installation peut se faire avec quelques commandes. Ouvrez un terminal et exécutez les commandes suivantes :

  • 22.04 :

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04 :

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Pour obtenir plus d’informations sur les versions des systèmes d’exploitation, voir Plateformes prises en charge par Azure IoT Edge.

Remarque

Les packages logiciels Azure IoT Edge sont soumis aux termes du contrat de licence situés dans chaque package (usr/share/doc/{package-name} ou dans le répertoire LICENSE). 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.

Installer un moteur de conteneur

Azure IoT Edge s’appuie sur un runtime de conteneur compatible avec OCI. Dans les scénarios de production, nous vous recommandons d’utiliser le moteur Moby. Le moteur Moby est le seul moteur de conteneur officiellement pris en charge avec IoT Edge. Les images conteneur Docker CE/EE sont compatibles avec le runtime Moby.

Installez le moteur Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

Par défaut, le moteur de conteneur ne définit pas de limites de taille pour le journal de conteneur. Au fil du temps, cela peut amener l’appareil à se remplir de journaux et à manquer d’espace disque. Toutefois, vous pouvez configurer votre journal pour qu’il s’affiche localement, bien que ce soit facultatif. Pour en savoir plus sur la configuration de la journalisation, consultez Check-list du déploiement de production.

Les étapes suivantes vous indiquent comment configurer votre conteneur pour utiliser le pilote de journalisation local comme mécanisme de journalisation.

  1. Créez ou modifiez le fichier config existant du démon Docker

    sudo nano /etc/docker/daemon.json
    
  2. Définissez le pilote de journalisation par défaut sur le pilote de journalisation local, comme indiqué dans l’exemple.

       {
          "log-driver": "local"
       }
    
  3. Redémarrez le moteur de conteneur pour appliquer les changements.

    sudo systemctl restart docker
    

Installer le runtime IoT Edge

Le service IoT Edge fournit et gère les standards de sécurité sur l’appareil IoT Edge. Le service se lance à chaque démarrage et amorce l’appareil en démarrant le reste du runtime IoT Edge.

Remarque

À partir de la version 1.2, le service d’identité IoT 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.

La procédure de cette section représente le processus classique d’installation de la dernière version IoT Edge sur un appareil disposant d’une connexion Internet. Si vous devez installer une version spécifique, comme une préversion, ou si vous devez installer en mode hors connexion, suivez les étapes d’installation d’une version hors connexion ou spécifique plus loin dans cet article.

Conseil

Si vous disposez déjà d’un appareil IoT Edge exécutant une version plus ancienne et que vous souhaitez effectuer une mise à niveau vers la dernière version, suivez les étapes décrites dans Mettre à jour le runtime et le démon de sécurité IoT Edge. Les versions ultérieures sont si différente des versions précédentes d’IoT Edge que des étapes spécifiques sont nécessaires pour la mise à niveau.

Installez la dernière version d’IoT Edge et le package du service d’identité IoT (si vous n’êtes pas encore à jour) :

  • 22.04 :

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04 :

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Le package defender-iot-micro-agent-edge facultatif inclut le micro-agent de sécurité Microsoft Defender pour IoT qui fournit une visibilité des points de terminaison sur la gestion de la posture de sécurité, les vulnérabilités, la détection des menaces, la gestion de la flotte et bien plus encore pour vous aider à sécuriser vos appareils IoT 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.

Provisionnement de l’appareil avec son identité cloud

Maintenant que le moteur de conteneur et le runtime IoT Edge sont installés sur votre appareil, vous êtes prêt à configurer l’appareil avec ses informations d’authentification et d’identité cloud.

Vous pouvez configurer votre appareil IoT Edge avec une authentification par clé symétrique en utilisant la commande suivante :

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

La commande iotedge config mp crée un fichier config sur l’appareil et entre votre chaîne de connexion dans le fichier config.

  1. Appliquez les modifications de la configuration.

    sudo iotedge config apply
    
  2. Pour afficher le fichier config, vous pouvez l’ouvrir :

    sudo nano /etc/aziot/config.toml
    

Déployer des modules

Pour déployer vos modules IoT Edge, accédez à votre hub IoT dans le Portail Azure, puis :

  1. Sélectionnez Appareils dans le menu IoT Hub.

  2. Sélectionnez votre appareil pour ouvrir sa page.

  3. Sélectionnez l’onglet Définir des modules.

  4. Du fait que nous souhaitons déployer les modules IoT Edge par défaut (edgeAgent et edgeHub), nous n’avons pas besoin d’ajouter d’autres modules à ce volet. Sélectionnez donc Vérifier + créer en bas de la page.

  5. Vous voyez la confirmation JSON de vos modules. Sélectionnez Créer pour déployer les modules.

Si vous souhaitez obtenir plus d’informations, consultez Déployer un module.

Vérification de la réussite de la configuration

Vérifiez que le runtime a été correctement installé et configuré sur votre appareil IoT Edge.

Conseil

Vous avez besoin de privilèges élevés pour exécuter les commandes iotedge. Une fois que vous vous déconnectez de votre machine et que vous vous reconnectez pour la première fois après avoir installé le runtime IoT Edge, vos autorisations sont automatiquement mises à jour. Dans l’intervalle, ajoutez sudo devant les commandes.

  1. Vérifiez que le service système IoT Edge est en cours d’exécution.

    sudo iotedge system status
    

    Une réponse d’état correcte montre les services aziot comme étant opérationnels ou prêts.

  2. Si vous avez besoin de résoudre les problèmes du service, récupérez les journaux d’activité de ce dernier.

    sudo iotedge system logs
    
  3. Utilisez l’outil check pour vérifier l’état de la configuration et de la connexion de l’appareil.

    sudo iotedge check
    

    Vous pouvez prévoir une plage de réponses qui peut inclure OK (vert), Avertissement (jaune) ou Erreur (rouge). Pour résoudre les erreurs courantes, consultez Solutions aux problèmes courants liés à Azure IoT Edge.

    Screenshot of sample responses from the check command.

    Conseil

    Utilisez toujours sudo pour exécuter l’outil de vérification, même après la mise à jour de vos autorisations. L’outil a besoin de privilèges élevés pour accéder au fichier config pour vérifier l’état de la configuration.

    Remarque

    Sur un appareil nouvellement approvisionné, vous pourriez voir une erreur liée à IoT Edge Hub :

    Préparation pour la production × : le répertoire de stockage d’Edge Hub est conservé sur le système de fichiers hôte – ErreurDésolé... Nous n’avons pas pu vérifier l’état actuel du conteneur edgeHub

    Cette erreur est attendue sur un appareil nouvellement approvisionné, car le module IoT Edge Hub n’est pas encore en cours d’exécution. Vérifiez que vos modules IoT Edge sont déployés dans les étapes précédentes. Un déploiement résout cette erreur.

    Vous pouvez également voir un code d’état comme 417 -- The device's deployment configuration is not set. Une fois vos modules déployés, cet état change.

  4. Lors du premier démarrage du service, seul le module edgeAgent apparaît dans cette liste. Le module edgeAgent s’exécute par défaut et vous aide à installer et démarrer tous les modules supplémentaires que vous déployez sur votre appareil.

    Vérifiez que votre appareil et vos modules sont déployés et en cours d’exécution en affichant la page de votre appareil dans le Portail Azure.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

    Une fois vos modules déployés et en cours d’exécution, répertoriez-les dans votre appareil ou machine virtuelle avec la commande suivante :

    sudo iotedge list
    

Installation d’une version spécifique ou hors connexion (facultatif)

Les étapes de cette section concernent les scénarios non couverts par les étapes d’installation standard. Cela peut inclure :

  • Installer IoT Edge en mode hors connexion
  • Installer une version Release Candidate

Utilisez les étapes de cette section si vous souhaitez installer une version spécifique du runtime Azure IoT Edge qui n’est pas disponible via votre gestionnaire de package. La liste des packages Microsoft contient uniquement un ensemble limité de versions récentes et leurs sous-versions. Par conséquent, ces étapes sont destinées à toute personne souhaitant installer une version antérieure ou une version Release Candidate.

Si vous utilisez des snaps Ubuntu, vous pouvez télécharger un snap et l’installer hors connexion. Pour plus d’informations, consultez Télécharger des snaps et les installer hors connexion.

À l’aide de commandes curl, vous pouvez cibler les fichiers de composants directement à partir du référentiel GitHub IoT Edge.

Remarque

Si votre appareil exécute actuellement IoT Edge version 1.1 ou une version antérieure, désinstallez les packages iotedge et libiothsm-std avant de suivre les étapes de cette section. Pour plus d’informations, consultez Mise à jour de la version 1.0 ou 1.1 vers la dernière version.

  1. Accédez aux versions d’Azure IoT Edgeet recherchez celle que vous souhaitez cibler.

  2. Développez la section Ressources pour cette version.

  3. Chaque mise en production devrait avoir de nouveaux fichiers pour IoT Edge et le service d’identité. Si vous envisagez d’installer IoT Edge sur un appareil hors connexion, téléchargez ces fichiers à l’avance. Autrement, utilisez les commandes suivantes pour mettre à jour ces composants.

    1. Recherchez le fichier aziot-identity-service correspondant à l’architecture de votre appareil IoT Edge. Cliquez avec le bouton droit de la souris sur le lien de fichier et copiez l’adresse du lien.

    2. Utilisez le lien copié dans la commande suivante pour installer cette version du service d’identité :

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. Recherchez le fichier aziot-edge correspondant à l’architecture de votre appareil IoT Edge. Cliquez avec le bouton droit de la souris sur le lien de fichier et copiez l’adresse du lien.

    2. Utilisez le lien copié dans la commande suivante pour installer cette version d’IoT Edge.

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

Désinstaller IoT Edge

Si vous souhaitez supprimer l’installation d’IoT Edge de votre appareil, utilisez les commandes suivantes.

Supprimez le runtime IoT Edge.

sudo apt-get autoremove --purge aziot-edge

Omettez l’indicateur --purge si vous prévoyez de réinstaller IoT Edge et d’utiliser les mêmes informations de configuration à l’avenir. L’indicateur --purge supprime tous les fichiers associés à IoT Edge, y compris vos fichiers config.

Lors de la suppression du runtime IoT Edge, tous les conteneurs qu’il a créés sont arrêtés, mais continuent d’exister sur votre appareil. Affichez tous les conteneurs pour voir ceux qui restent.

sudo docker ps -a

Supprimez les conteneurs de votre appareil, dont les deux conteneurs de runtime.

sudo docker rm -f <container ID>

Enfin, supprimez le runtime du conteneur de votre appareil.

sudo apt-get autoremove --purge moby-engine

Étapes suivantes

Passez à Déployer des modules IoT Edge pour savoir comment déployer des modules sur votre appareil.