Créer et approvisionner un appareil IoT Edge pour Linux sur Windows à l’aide de clés symétriques

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

Important

Azure IoT Edge 1.5 LTS et IoT Edge 1.4 sont des versions prises en charge. IoT Edge 1.4 LTS arrive en fin de service le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

Cet article fournit des instructions de bout en bout pour l’inscription et le provisionnement d’un appareil IoT Edge pour Linux sur Windows.

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 comprennent le nom d’hôte du hub IoT, l’ID d’appareil ainsi que les informations que l’appareil utilise pour s’authentifier auprès d’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 provisionner un appareil IoT Edge pour Linux sur Windows à 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 traite de l’inscription de votre appareil IoT Edge et de l’installation de IoT Edge pour Linux sur Windows. Ces tâches ont des conditions préalables et différents utilitaires sont utilisés pour les accomplir. Assurez-vous que toutes les conditions préalables sont remplies avant de continuer.

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 Windows avec la configuration minimale requise suivante :

  • Configuration requise

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 1 et Windows Server 10 version 2019 build 17763 ou ultérieure, avec toutes les mises à jour cumulatives actuelles installées.
  • Configuration matérielle requise

    • Mémoire disponible minimale : 1 Go
    • Espace disque disponible minimal : 10 Go
  • Prise en charge de la virtualisation

  • Prise en charge du réseau

    • Windows Server n’est pas fourni avec un commutateur par défaut. Pour pouvoir déployer EFLOW sur un appareil Windows Server, vous devez créer un commutateur virtuel. Pour plus d’informations, consultez Création d’un commutateur virtuel pour Linux sur Windows.
    • Les versions Windows Desktop sont fournies avec un commutateur par défaut utilisable pour l’installation d’EFLOW. Si nécessaire, vous pouvez créer votre propre commutateur virtuel personnalisé.

Conseil

Si vous souhaitez utiliser des modules Linux avec accélération GPU dans votre déploiement Azure IoT Edge pour Linux sur Windows, il existe plusieurs options de configuration à prendre en compte.

Vous devrez installer les pilotes adaptés à votre architecture GPU. Par ailleurs, vous aurez peut-être besoin d’un accès à une build du Programme Windows Insider. Pour déterminer vos besoins en matière de configuration et satisfaire à ces prérequis, consultez Accélération GPU pour Azure IoT Edge pour Linux sur Windows.

Veillez à prendre le temps de répondre aux conditions préalables à l’accélération du GPU. Vous devrez redémarrer le processus d’installation si vous décidez d’accélérer le GPU pendant l’installation.

Outils de développeur

Préparez votre appareil cible à l’installation d’Azure IoT Edge pour Linux sur Windows et au déploiement de la machine virtuelle Linux :

  1. Définissez la stratégie d’exécution sur l’appareil cible sur AllSigned. Vous pouvez vérifier la stratégie d’exécution actuelle dans une invite PowerShell avec élévation de privilèges à l’aide de la commande suivante :

    Get-ExecutionPolicy -List
    

    Si la stratégie d’exécution de local machine n’est pas AllSigned, vous pouvez la définir à l’aide de :

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Pour en savoir plus sur le module PowerShell d’Azure IoT Edge pour Linux sur Windows, consultez la documentation de référence sur les fonctions PowerShell.

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. L’une ou l’autre fonctionne.

Installer IoT Edge

Déployez Azure IoT Edge pour Linux sur Windows sur votre appareil cible.

Remarque

Le processus PowerShell suivant explique comment déployer IoT Edge pour Linux sur Windows sur l’appareil local. Pour effectuer un déploiement sur un appareil cible distant avec PowerShell, vous pouvez utiliser PowerShell distant afin d’établir une connexion à un appareil distant et d’exécuter ces commandes à distance sur cet appareil.

  1. Dans une session PowerShell avec élévation de privilèges, exécutez l’une des commandes suivantes en fonction de l’architecture de votre appareil cible pour télécharger IoT Edge pour Linux sur Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. Installez IoT Edge pour Linux sur Windows sur votre appareil.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Vous pouvez spécifier des répertoires personnalisés d’installation d’IoT Edge pour Linux sur Windows et VHDX en ajoutant les paramètres INSTALLDIR="<FULLY_QUALIFIED_PATH>" et VHDXDIR="<FULLY_QUALIFIED_PATH>" à la commande d’installation. Par exemple, si vous souhaitez utiliser le dossier D:\EFLOW pour l’installation et D:\EFLOW-VHDX pour le VHDX, vous pouvez utiliser l’applet de commande PowerShell suivante.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Définissez la stratégie d’exécution sur l’appareil cible sur AllSigned si ce n’est pas déjà fait. Consultez la configuration requise des commandes PowerShell pour vérifier la stratégie d’exécution actuelle et définir la stratégie d’exécution sur AllSigned.

  4. Créer le déploiement d’IoT Edge pour Linux sur Windows. Le déploiement crée votre machine virtuelle Linux et installe le runtime IoT Edge pour vous.

    Deploy-Eflow
    

    Conseil

    Par défaut, la commande Deploy-Eflow crée votre machine virtuelle Linux avec 1 Go de RAM, 1 noyau de processeur virtuel et 16 Go d’espace disque. Toutefois, les ressources dont votre machine virtuelle a besoin dépendent fortement des charges de travail que vous déployez. Si votre machine virtuelle ne dispose pas de suffisamment de mémoire pour prendre en charge vos charges de travail, elle ne démarrera pas.

    Vous pouvez personnaliser les ressources disponibles de la machine virtuelle à l’aide des paramètres facultatifs de la commande Deploy-Eflow. Ceci est nécessaire pour déployer EFLOW sur un appareil avec la configuration matérielle minimale requise.

    Par exemple, la commande suivante crée une machine virtuelle avec 1 cœur de processeur virtuel, 1 Go de RAM (quantité représentée en Mo) et 2 Go d’espace disque :

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    Pour plus d’informations sur tous les paramètres facultatifs disponibles, consultez Fonctions PowerShell pour IoT Edge pour Linux sur Windows.

    Avertissement

    Par défaut, la machine virtuelle Linux EFLOW n’a pas de configuration DNS. Les déploiements utilisant DHCP essaient d’obtenir la configuration DNS propagée par le serveur DHCP. Vérifiez votre configuration DNS pour garantir la connectivité Internet. Pour plus d’informations, consultez AzEFLOW-DNS.

    Vous pouvez affecter un GPU à votre déploiement pour permettre l’utilisation de modules Linux avec accélération GPU. Pour accéder à ces fonctionnalités, vous devez installer les composants requis détaillés dans Accélération GPU pour Azure IoT Edge pour Linux sur Windows.

    Pour utiliser un relais GPU, ajoutez les paramètres gpuName, gpuPassthroughType et gpuCount à votre commande Deploy-Eflow. Pour plus d’informations sur tous les paramètres facultatifs disponibles, consultez Fonctions PowerShell pour IoT Edge pour Linux sur Windows.

    Avertissement

    L’activation du relais d’appareils matériels peut augmenter les risques liés à la sécurité. Microsoft vous recommande de recourir à un pilote d’atténuation des appareils du fournisseur de votre GPU, le cas échéant. Pour plus d’informations, consultez Déploiement d’appareils graphiques avec la technologie DDA (Discrete Device Assignment).

  5. Entrez « Y » pour accepter les termes du contrat de licence.

  6. Entrez « O » ou « R » pour activer ou désactiver les données de diagnostic facultatives à votre convenance.

  7. Une fois le déploiement terminé, la fenêtre PowerShell signale Déploiement réussi.

    Un déploiement réussi indique « Déploiement réussi » à la fin des messages.

    Une fois le déploiement réussi, vous êtes prêt à provisionner votre appareil.

Provisionnement de l’appareil avec son identité cloud

Vous êtes prêt à configurer votre appareil avec ses informations d’identité et d’authentification cloud.

Pour approvisionner votre appareil à l’aide de clés symétriques, vous avez besoin de la chaîne de connexion de votre appareil.

Exécutez la commande suivante dans une session PowerShell avec élévation de privilèges sur votre appareil cible. Remplacez le texte de l’espace réservé par vos propres valeurs.

Provision-EflowVm -provisioningType ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"

Pour plus d’informations sur la commande Provision-EflowVM, consultez Fonctions PowerShell pour IoT Edge pour Linux sur Windows.

Vérification de la réussite de la configuration

Vérifiez que IoT Edge pour Linux sur Windows a été correctement installé et configuré sur votre appareil IoT Edge.

  1. Connectez-vous à votre IoT Edge pour Linux sur une machine virtuelle Windows en utilisant la commande suivante dans votre session PowerShell :

    Connect-EflowVm
    

    Remarque

    Le seul compte autorisé à accéder via SSH à la machine virtuelle est celui de l’utilisateur qui l’a créée.

  2. Une fois connecté, vous pouvez vérifier la liste des modules IoT Edge en cours d’exécution à l’aide de la commande Linux suivante :

    sudo iotedge list
    
  3. Si vous devez dépanner le service IoT Edge, utilisez les commandes Linux suivantes.

    1. Récupérez les journaux de service.

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

      sudo iotedge check
      

    Remarque

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

    Vérification de disponibilité de la production × : le répertoire de stockage Edge Hub est conservé sur le système de fichiers hôte - Erreur

    Impossible de vérifier l’état actuel du conteneur edgeHub

    Cette erreur est attendue sur un appareil nouvellement provisionné, car le module IoT Edge Hub n’est pas en cours d’exécution. Pour résoudre l’erreur, dans IoT Hub, définissez les modules de l’appareil et créez un déploiement. La création d’un déploiement pour l’appareil démarre les modules sur l’appareil, y compris le module IoT Edge Hub.

Lorsque vous créez un appareil IoT Edge, le code d’état 417 -- The device's deployment configuration is not set s’affiche dans le portail Azure. Cet état est normal et signifie que l’appareil est prêt à recevoir un déploiement de module.

Désinstaller IoT Edge pour Linux sur Windows

Si vous souhaitez supprimer l’installation d’Azure IoT Edge pour Linux sur Windows de votre appareil, utilisez les commandes suivantes.

  1. Ouvrez Paramètres sur Windows.
  2. Sélectionnez Ajout/Suppression de programmes.
  3. Sélectionnez l’application Azure IoT Edge.
  4. Sélectionnez Désinstaller.

Étapes suivantes