Approvisionnement en Azure Device Update pour l’agent IoT Hub

L’agent du module Device Update peut s’exécuter en même temps que d’autres processus système et modules IoT Edge qui se connectent à votre hub IoT dans le cadre du même périphérique logique. Cet article explique comment approvisionner l’agent Device Update en tant qu’identité de module.

Remarque

Utilisez la dernière version 1.x de l’implémentation de référence de l’agent Device Update pour bénéficier des dernières améliorations. Vérifiez la version installée dans la section propriétés de votre jumeau d’appareil IoT. Pour plus d’informations, consultez Device Update for IoT Hub supported platforms.

Identité de module et identité d’appareil

Vous pouvez créer jusqu’à 50 identités de module sous chaque identité d’appareil Azure IoT Hub. Chaque identité de module génère implicitement un jumeau d’identité de module. Côté appareil, vous pouvez utiliser les kits SDK d’appareil IoT Hub pour créer des modules qui ouvrent chacune une connexion indépendante à IoT Hub.

L’identité de module et le jumeau d’identité de module offrent les mêmes capacités que l’identité d’appareil et le jumeau d’appareil, mais avec une plus grande précision. Pour en savoir plus, consultez Comprendre et utiliser les jumeaux de module dans IoT Hub.

Lorsque vous approvisionnez l’agent Device Update en tant qu’identité de module, toutes les communications entre l’appareil et le service Device Update doivent se produire sur le jumeau de module. N’oubliez pas d’étiqueter le jumeau de module de l’appareil lorsque vous créez des groupes d’appareils. Si vous migrez d’un agent au niveau de l’appareil vers l’ajout de l’agent en tant qu’identité de module, supprimez l’ancien agent qui communiquait via le jumeau d’appareil.

Types de mise à jour pris en charge

Device Update prend en charge les types suivants de mises à jour OTA pour les appareils IoT :

Préparer les mises à jour du package

Pour configurer un appareil IoT ou un appareil IoT Edge pour installer des mises à jour basées sur des packages, ajoutez packages.microsoft.com aux référentiels de votre ordinateur en procédant comme suit :

  1. Ouvrez une fenêtre Terminal sur l’ordinateur ou l’appareil IoT où vous souhaitez installer l’agent Device Update.

  2. Installez la configuration du référentiel qui correspond au système d’exploitation de votre appareil, par exemple :

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  3. Copiez la liste générée dans votre répertoire sources.list.d.

    sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
    
  4. Installez la clé publique Microsoft GPG.

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    
    sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
    

Approvisionner l’agent Device Update

Vous pouvez approvisionner l’agent Device Update en tant qu’identité de module sur des appareils compatibles IoT Edge ou sur des appareils IoT non IoT Edge. Pour vérifier si IoT Edge est activé sur votre appareil, consultez Afficher les appareils inscrits et récupérer les informations d’approvisionnement.

Vous pouvez télécharger des exemples d’images à utiliser à partir de la section Ressources de la page Versions. Dans Tutorial_RaspberryPi3.zip, le fichier swUpdate est l’image de base que vous pouvez flasher sur un panneau Raspberry Pi B3+. Le fichier .gz est la mise à jour que vous pouvez importer via Device Update. Pour plus d’informations, consultez Azure Device Update pour IoT Hub à l’aide d’une image Raspberry Pi.

Sur des appareils sur lesquels IoT Edge est activé

Suivez ces instructions pour approvisionner l'agent Device Update sur les appareils activés IoT Edge :

  1. Suivez les instructions à la page Approvisionnement manuel d'un seul appareil Linux IoT Edge.

  2. Installez l’agent de mise à jour de l’image Device Update en exécutant la commande suivante :

    sudo apt-get install deviceupdate-agent
    
  3. Installez l’agent de mise à jour du package Device Update.

    • Pour obtenir les dernières versions de l’agent, accédez à packages.microsoft.com, mettez à jour les listes de packages sur votre appareil, puis installez le package de l’agent Device Update et ses dépendances en utilisant :

      sudo apt-get update
      
      sudo apt-get install deviceupdate-agent
      
    • Pour les versions d’agent Release candidate, téléchargez le fichier .deb à partir des versions vers la machine sur laquelle vous souhaitez installer l’agent Device Update, puis exécutez la commande suivante :

      sudo apt-get install -y ./"<PATH TO FILE>"/"<.DEB FILE NAME>"
      
    • Si vous configurez un cache connecté Microsoft (MCC) pour un scénario d’appareil déconnecté, installez le plug-in APT d’optimisation de la distribution comme suit :

      sudo apt-get install deliveryoptimization-plugin-apt
      

Sur les appareils non IoT sur lesquels Edge est activé

Suivez ces instructions pour approvisionner l’agent Device Update sur les appareils IoT Linux sans qu’IoT Edge soit installé. Vous pouvez provisionner l’agent à l’aide de l’Azure IoT Identity Service (AIS) ou en configurant les informations d’identification directement sur l’appareil.

Utiliser Azure IoT Identity Service (AIS)

  1. Installez la dernière version du service d’identité IoT en suivant les instructions de la section Installation du service d’identité Azure IoT.

  2. Configurez le service d’identité IoT en suivant les instructions fournies dans Configuration du service d’identité Azure IoT. Vérifiez que le service est configuré avec l’identité appropriée de l’appareil ou du module afin qu’il puisse fournir des informations de connexion à l’agent Device Update.

  3. Installez l’agent Device Update en exécutant la commande suivante :

    sudo apt-get install deviceupdate-agent
    

Remarque

Si votre appareil IoT ne peut pas exécuter le service d'identité IoT ou IoT Edge, qui regroupe le service d'identité IoT, vous pouvez toujours installer l'agent Device Update et le configurer en utilisant un chaîne de connexion ou x.509 certificats.

Utiliser une chaîne de connexion

Pour tester ou sur des appareils limités, vous pouvez configurer l’agent Device Update sans utiliser le service d’identité IoT. Vous pouvez utiliser une chaîne de connexion pour approvisionner l’agent Device Update à partir du module ou de l’appareil.

  1. Dans le portail Azure, copiez la chaîne de connexion principale. Si l’agent Device Update est configuré en tant qu’identité de module, copiez la chaîne de connexion principale du module. Sinon, copiez la chaîne de connexion principale de l’appareil.

  2. Dans une fenêtre de terminal sur l’ordinateur ou l’appareil IoT où vous avez installé l’agent Device Update, modifiez le fichier de configuration Device Update en exécutant la commande suivante :

  3. Dans le fichier du-config.json , définissez toutes les valeurs qui ont un espace réservé Place value here et entrez la chaîne de connexion primaire copiée comme valeur de champ connectionData. Pour un exemple, consultez Exemple de contenu du fichier « du-config.json ».

Utiliser des certificats X.509

L’agent Device Update version 1.3.0 et ultérieure prend en charge l’authentification auprès de IoT Hub à l’aide de certificats X.509. Azure IoT Hub prend en charge deux méthodes de configuration de certificat X.509 :

  • Certificats signés par l’autorité de certification (recommandé) : Les appareils s’authentifient à l’aide d’un certificat émis par une autorité de certification approuvée.
  • Certificats signés par l’utilisateur (basés sur l’empreinte numérique) : Chaque identité d’appareil est configurée avec une empreinte numérique de certificat qui IoT Hub valide pendant l’authentification.

Configurer l’authentification X.509

Inscrivez votre identité d’appareil dans IoT Hub avec l’authentification X.509 activée.

  1. Configurez l’appareil à l’aide des deux éléments suivants :
    • Certificat émis par une autorité de certification approuvée.
    • Un certificat auto-signé avec une empreinte numérique inscrite.
  2. Installez l’agent Device Update sur l’appareil.

Le service DPS (Device Provisioning Service) peut être utilisé pour approvisionner des identités et des certificats d’appareil. Toutefois, DPS ne provisionne pas d’identités de module. La configuration de l’agent Device Update doit toujours être terminée sur l’appareil.

Pour obtenir des instructions de configuration pas à pas, notamment des scénarios avancés tels que des clés matérielles sauvegardées (par exemple, des modules de sécurité matériels (HSM) ou un stockage de clés basé sur PKCS#11 pour la gestion des clés sécurisées), consultez le guide d’authentification X.509 : How to Use X.509 Client Certificate Authentication.

Remarque

La prise en charge de l’authentification X.509 dans l’agent Device Update utilise la configuration d’identité standard Azure IoT Hub. Cette fonctionnalité n’est pas intégrée à la gestion des certificats d’Azure Device Registry (ADR) (préversion).

Configurer l’agent Device Update

Après avoir installé l’agent Device Update, modifiez le fichier de configuration Device Update en exécutant la commande suivante.

sudo nano /etc/adu/du-config.json

Dans le fichier du-config.json, définissez toutes les valeurs qui ont un espace réservé Place value here.

Azure IoT Identity Service (AIS)

  • "connectionType" : "AIS"
  • "connectionData": "" (chaîne vide)

Remarque

Lors de l’utilisation de Azure IoT Identity Service (AIS), le service doit être configuré pour fournir l’identité correcte à l’agent Device Update. Cela inclut la configuration des identités dans config.toml et la garantie que l’agent est associé à l’identité appropriée de l’appareil ou du module. Si l’agent Device Update s’exécute en tant que module, une identité de module correspondante doit être configurée afin que AIS puisse retourner les informations de connexion du module à l’agent. Pour plus d’informations sur la configuration, consultez Configuring the Azure IoT Identity Service.

chaîne de connexion

  • "connectionType" : "string"
  • "connectionData" : "HostName=<hub>.azure-devices.net;DeviceId=<device>;SharedAccessKey=<key>" (remplacez par votre nom d’hôte IoT Hub, votre ID d’appareil et votre clé d’accès partagé)

Certificats X.509

  • "connectionType" : "x509"
  • "connectionData" : "HostName=<hub>.azure-devices.net;DeviceId=<device>;x509=true" (remplacez par votre nom d’hôte et votre ID d’appareil IoT Hub)
  • "connectionX509CertFilePath" : "/etc/adu/certs/client.pem"
  • "connectionX509PrivateKeyFilePath" : "/etc/adu/certs/client.key"
  • "connectionX509CaCertFilePath" : "/etc/adu/certs/ca.pem"

Pour plus d’informations sur la configuration, consultez le Azure Device Update Agent Configuration Guide.

Pour plus d’informations, consultez : Fichier de configuration Device Update. Pour un exemple, consultez Exemple de contenu du fichier « du-config.json ».

Démarrez l’agent Device Update

Démarrez l’agent Device Update et vérifiez qu’il s’exécute correctement sur votre appareil.

  1. Dans une fenêtre terminale sur l’ordinateur ou l’appareil IoT où vous avez installé l’agent Device Update, redémarrez l’agent en exécutant la commande suivante :

    sudo systemctl restart deviceupdate-agent
    
  2. Vérifiez l’état de l’agent en exécutant la commande suivante.

    sudo systemctl status deviceupdate-agent
    

    L’état OK doit s’afficher.

  3. Sur la page du portail IoT Hub, accédez à Appareils ou IoT Edge pour rechercher l’appareil que vous avez configuré et consultez l’agent Device Update s’exécutant en tant que module. Par exemple :

    Diagramme du nom du module Device Update montrant l’état connecté.

Activer l’agent Device Update derrière un serveur proxy

Les appareils exécutant l’agent Device Update envoient des requêtes HTTPS pour communiquer avec IoT Hub. Si vous avez connecté votre appareil à un réseau qui utilise un serveur proxy, vous devez configurer le service systemd Device Update pour qu’il communique avec le serveur.

Avant de configurer Device Update, vérifiez que vous disposez de l’URL du proxy. L’URL du proxy se présente sous le protocole de format ://proxy_host:proxy_port.

Créez un répertoire de configuration de remplacement pour systemd et un fichier de remplacement pour systemd en exécutant la commande suivante :

sudo mkdir -p /etc/systemd/system/deviceupdate-agent.service.d
sudo nano /etc/systemd/system/deviceupdate-agent.service.d/override.conf

Ajouter les détails du proxy à la configuration

[Service]
Environment="HTTP_PROXY=http://your.proxy.server:port"
Environment="HTTPS_PROXY=http://your.proxy.server:port"

Redémarrez l’agent pour appliquer les changements :

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart deviceupdate-agent

Vous pouvez ensuite vérifier que les variables d’environnement sont appliquées à l’aide de

sudo systemctl show deviceupdate-agent | grep -i proxy

Générer et exécuter un agent Device Update

Vous pouvez également créer et modifier votre propre agent Device Update personnalisé. Suivez les instructions de la section Comment créer l’agent Device Update pour générer l’agent Device Update à partir de la source.

Une fois l’agent compilé avec succès, suivez Exécution de l’agent de référence Device Update pour IoT Hub pour lancer l’agent. Pour apporter des modifications nécessaires à l’incorporation de l’agent dans votre image, suivez comment modifier le codede l’agent Device Update.

Dépannage

Si vous rencontrez des problèmes, consultez le Guide de résolution des problèmes Device Update pour IoT Hub pour vous aider à résoudre les problèmes et à collecter les informations nécessaires à fournir à Microsoft.