Partager via


Comment et où installer l’agent OSConfig pour Linux

Cet article s’adresse aux personnes qui souhaitent ajouter des fonctionnalités OSConfig à leurs appareils, afin que leur configuration puisse être provisionnée, gérée et surveillée via les services Azure IoT. Cela peut inclure des générateurs d’appareils, des intégrateurs de systèmes, des générateurs de solutions, etc.

L’agent OSConfig est un composant Linux compact qui projette la configuration locale de chaque appareil dans Azure IoT pour l’approvisionnement et la gestion à grande échelle. Pour connaître le contexte sur les motivations et l’utilisation d’OSConfig, consultez Qu’est-ce que OSConfig pour IoT.

Échelle de la flotte ou appareil unique ?

  • Pour commencer à essayer des scénarios, vous pouvez installer OSConfig sur un seul appareil.

  • À grande échelle, chaque appareil dont la configuration sera provisionnée et gérée doit disposer de l’agent OSConfig, comme dans le diagramme suivant.

    Diagramme montrant plusieurs appareils se connectant à IoT Hub, avec un jumeau OSConfig pour chacun d’eux.

    En règle générale, l’agent OSConfig est inclus dans les images de système d’exploitation de l’appareil de référence, qui sont ensuite appliquées à de nombreux appareils.

Quels types d’appareils ?

Classes matérielles

Consultez le tableau ci-dessous pour obtenir un résumé. Des notes détaillées suivent le tableau.

Installer OSConfig ?
Classe MCU ¹ Pas à l'heure actuelle
MPU/PROCESSEUR moins puissant avec Linux ² Yes
Appareils plus puissants avec Linux ³ Yes
Appareils exécutant Windows IoT Fonctionnalités similaires
informations de référence csp intégrées

¹ Classe MCU : pour le contexte, il s’agit des appareils Arduino, des appareils RP2040, etc. Ces appareils exécutent généralement du code nu spécifique à un scénario ou avec un micro-système d’exploitation tel qu’AzureRTOS ou FreeRTOS.

² Moins puissant MPU/classe processeur avec Linux : l’agent est conçu pour être compact et efficace, ce qui permet d’utiliser des appareils plus petits capables d’exécuter Linux.

³ Calcul de périphérie plus puissant avec Linux : en tant que composant efficace côté appareil, l’agent OSConfig est parfaitement à la maison sur des appareils de calcul de périphérie plus puissants tels que les kits NVidia Jetson.

Linux « appareils IoT » et Linux « Périphériques Edge »

Dans l’écosystème Azure IoT pour Linux, les termes appareil IoT et appareil Edge sont parfois utilisés pour déterminer si l’appareil a IoT Edge installé. Il existe également une corrélation faible avec la classe d’appareil (les appareils plus volumineux ont tendance à avoir IoT Edge installés).

OSConfig fonctionne dans l’un ou l’autre contexte. Il peut s’exécuter côte à côte avec IoT Edge, mais ne nécessite pas de IoT Edge.

Qu’en est-il des secrets d’appareil et qu’en est-il des applications/agents/modules multiples ?

Nous vous recommandons d’utiliser OSConfig avec Azure IoT Identity Service (AIS).

AIS est le répartiteur sur appareil de Microsoft pour la gestion des secrets et de l’authentification. AIS facilite le partage d’une identité d’appareil unique pour plusieurs applications, agents et/ou modules Edge. Les étapes ci-dessous illustrent l’utilisation d’AIS et d’OSConfig ensemble.

AIS est disponible en mode autonome, et il est également inclus dans IoT Edge 1.2 et versions ultérieures. Tenez compte des éléments suivants lors de l’installation.

Installer AIS ?
L’appareil n’a pas de IoT Edge (également appelé « appareil IoT ») Yes
L’appareil a IoT Edge 1.2 ou version ultérieure Oui¹
L’appareil a IoT Edge 1.1 ou une version antérieure Non²

¹ IoT Edge 1.2 et versions ultérieures incluent les composants AIS. Pour simplifier les instructions, les étapes ci-dessous incluent toujours l’installation d’AIS. Cette approche permet à votre gestionnaire de package de détecter si cette étape est une opération sans opération, plutôt que de recréer cette logique en externe.

² N’installez pas AIS sur les appareils avec IoT Edge 1.1 ou une version antérieure. Envisagez de passer à une version ultérieure de IoT Edge. Si vous n’êtes pas prêt à mettre à niveau IoT Edge mais que vous souhaitez toujours explorer des scénarios OSConfig, envisagez d’essayer les scénarios sur un autre appareil ou machine virtuelle pour l’instant.

Travail 1. Installer les composants sur l’appareil

Il existe trois options pour répondre à vos besoins :

  • R. Installer des packages
  • B. Génération à partir de la source
  • C. Utiliser des appareils avec les fonctionnalités intégrées

Choisissez votre expérience préférée ci-dessous pour obtenir des instructions :

Des packages d’installation prêts à l’utilisation sont disponibles pour arm64 (aka aarch64), amd64 (alias x86_64) sur :

  • Debian 10
  • Debian 11
  • Ubuntu Server 18.04
  • Ubuntu Server 20.04

Étape 1.1. Connecter un appareil à packages.microsoft.com

Vous pouvez utiliser les exemples de commandes suivants pour connecter votre gestionnaire de package de système d’exploitation au canal stable sur packages.microsoft.com.

#!/bin/bash

## For Ubuntu and on Debian 10+

## Register packages.microsoft.com key and prod channel
sudo wget https://packages.microsoft.com/keys/microsoft.asc -O /etc/apt/trusted.gpg.d/packages-microsoft-com_key.asc
os_name=$(grep ^ID= /etc/os-release | tr -d "ID=")
os_version=$(grep ^VERSION_ID /etc/os-release | tr -d "VERSION_ID=")
sudo wget https://packages.microsoft.com/config/"$os_name"/"$os_version"/prod.list -O /etc/apt/sources.list.d/packages-microsoft-com_prod.list
sudo apt update

Conseil

L’exemple ci-dessus connecte votre gestionnaire de package au prod canal sur packages.microsoft.com, ce qui convient à la plupart des appareils et des situations. Pour plus d’informations sur les builds en préversion, consultez À propos des builds OSConfig en préversion ou « insiders »

Étape 1.2. Installer le package AIS

Attention

Comme indiqué ci-dessus, n’installez pas AIS sur un appareil avec IoT Edge 1.1 ou une version antérieure. AIS s’adresse aux appareils sans IoT Edge ou aux appareils avec IoT Edge version 1.2 ou ultérieure.

sudo apt-get install -y aziot-identity-service

Étape 1.3. Installer le package OSConfig

sudo apt-get install -y osconfig

Si vous installez uniquement les composants pour le moment (par exemple, la préparation d’une image de base) et que vous ne vous connectez pas à Azure, vous pouvez vous arrêter ici. Les étapes suivantes seront effectuées ultérieurement, peut-être par votre client.

Travail 2. Connexion à Azure

Maintenant que l’agent OSConfig et AIS sont présents sur l’appareil, l’étape suivante consiste à configurer l’appareil avec une identité afin qu’il puisse se connecter à Azure.

Conseil

Certains appareils peuvent avoir des mécanismes pour le faire en votre nom. Par exemple, les appareils Azure Percept incluent une expérience de configuration pour connecter l’appareil.

Étape 2.1. Définition des informations d’identification de l’appareil dans AIS sur l’appareil

AIS prend en charge plusieurs scénarios de déploiement et méthodes d’authentification.

L’exemple simpliste suivant utilise une chaîne de connexion avec une clé symétrique. Pour les scénarios de production, choisissez parmi les options d’authentification plus fortes décrites dans Configuration d’Azure IoT Identity Service.

Exemple rapide : Se connecter avec une clé symétrique

Dans le portail Azure :

  1. Accédez à votre liste d’appareils IoT Hub
  2. Créer une identité d’appareil si nécessaire
  3. Accédez aux propriétés de l’appareil et copiez la chaîne de connexion

Sur l’appareil :

  1. Exécutez les commandes suivantes pour définir les informations d’identification dans AIS, en remplaçant l’espace réservé de chaîne de connexion par le vôtre.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>"
sudo aziotctl config apply

Étape 2.2. Vérifier la réussite de la connexion à Azure

Vous pouvez vérifier que AIS et OSConfig se connectent à IoT Hub à l’aide de ces commandes sur l’appareil :

sudo aziotctl check
sudo systemctl status osconfig | grep Active

La sortie de la aziotctl check commande doit indiquer tous les tests réussis.

La sortie de doit systemctl status osconfig inclure Active: active. Dans certains cas, vous pouvez voir Active: activating (auto-restart) à la place, ce qui signifie que systemd attend un minuteur pour redémarrer le service. Pour passer au-delà immédiatement au lieu d’attendre, exécutez sudo systemctl restart osconfig, puis réessayez la commande d’état.

Et voilà ! Le client OSConfig est maintenant en cours d’exécution sur votre appareil.

Paramètres d’agent facultatifs

De nombreuses personnes peuvent ignorer cette section et utiliser simplement les comportements par défaut. Si vous avez des contraintes d’environnement ou de gouvernance telles que des serveurs proxy, des restrictions de pare-feu sortant ou des réseaux en couches, consultez les rubriques suivantes :

IoT Hub sélection du protocole

Conseil

La sélection du protocole a été ajoutée au canal prod/stable dans la version v1.0.2.2022040405. Vérifiez que vous utilisez la dernière version prod/stable d’OSConfig.

Lors de la communication avec le IoT Hub, l’agent OSConfig peut utiliser le transport de télémétrie Message Queuing (MQTT) simple ou utiliser MQTT sur WebSockets (MQTT_WS).

De nombreuses personnes n’ont pas besoin de spécifier un protocole et peuvent simplement utiliser des comportements par défaut. Si vous devez spécifier un protocole basé sur l’une des considérations suivantes, vous devez définir la Protocol valeur dans /etc/osconfig/osconfig.json.

MQTT MQTT_WS
Port TCP ¹ 8883 443
Serveur proxy ² Non Oui
Passerelle IoT Edge
(parent/enfant) ³
Oui Non
Identificateur de protocole
à définir dans osconfig.json
1 2

¹ Fait référence au port TCP utilisé lorsque l’agent OSConfig sur l’appareil se connecte sortant à IoT Hub

² Indique si OSConfig peut utiliser explicitement un serveur proxy HTTP (via https_proxy variable d’environnement)

³ Fait référence au scénario de passerelle transparente IoT Edge, dans lequel OSConfig exécuté sur un appareil enfant se connecte à IoT Hub via un appareil parent

Connexion via un serveur proxy HTTP

Si votre environnement nécessite qu’OSConfig se connecte à IoT Hub via un serveur proxy HTTP, consultez les rubriques suivantes :

Conseil

La prise en charge du serveur proxy a été ajoutée au canal prod/stable dans la version v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.

  1. Comme indiqué dans IoT Hub sélection du protocole, seules MQTT_WS peuvent être utilisées avec un serveur proxy HTTP. Pour activer MQTT_WS, vérifiez que la Protocol valeur dans /etc/osconfig/osconfig.json est définie sur 2.

  2. Vérifiez que la https_proxy variable d’environnement ou HTTPS_PROXY est définie dans le contexte où OSConfig s’exécute.

    En règle générale, les administrateurs système ou les générateurs d’images le transmettent en modifiant les fichiers d’unités système pour tous les services (y compris OSConfig) qui doivent utiliser le serveur proxy.

    Par exemple, vous pouvez ajouter une ligne comme
    Environment="https_proxy=http://myproxy.example.com:3128"
    à la [Service] partie de /etc/systemd/system/osconfig.service.
    Veillez à exécuter sudo systemctl daemon-reload et sudo systemctl restart osconfig après avoir modifié le fichier.

Étapes suivantes

Maintenant que vous avez un appareil exécutant OSConfig et connecté à Azure IoT, vous pouvez essayer des scénarios de gestion.

Pour obtenir une vue d’ensemble des scénarios et des fonctionnalités OSConfig, consultez :

Pour obtenir des exemples pratiques spécifiques, consultez :