Report and inventory hardware and OS information with Azure IoT and OSConfig
Important
La version 1.0.3 (publiée le 28 juin 2022) inclut des modifications cassants des noms de membres qui peuvent avoir un impact sur les utilisateurs existants. Pour plus d’informations, consultez : Transition des noms de membres de PascalCase à camelCase dans la version 1.0.3
Audience et étendue
Cet article est conçu pour prendre en charge les personnes qui approvisionnent ou gèrent des appareils avec Azure IoT. Si cela ne vous ressemble pas, envisagez de consulter la documentation Audiences pour OSConfig.
Cet article décrit et illustre l’utilisation des modules DeviceInformation et TPM pour obtenir des informations sur l’appareil, notamment sur le système d’exploitation, la version, la présence du module TPM, la mémoire, etc.
Conseil
Si vous êtes ici pour la référence du modèle objet, vous pouvez passer des exemples de cas d’utilisation aux informations de référence
Exemples de cas d’usage
Ces exemples peuvent vous servir de points de départ pour vous adapter à votre environnement unique.
Prérequis pour essayer les exemples sur des systèmes en direct
Si vous utilisez cet article à titre de référence (par exemple, vous êtes ici pour copier un nom de propriété), il n’existe aucune condition préalable.
Si vous souhaitez essayer les exemples sur les systèmes dynamiques (recommandés), alors :
Vous aurez besoin d’un compte Azure avec un IoT Hub
Cet article suppose une certaine familiarité avec IoT Hub et les outils associés. Par exemple, il suppose que vous êtes à l’aise pour créer des hubs IoT et attacher des appareils. Si vous préférez une présentation pas à pas plus normative de l’installation et de l’utilisation d’OSConfig à partir de zéro, consultez Démarrage rapide : Gérer un seul appareil IoT virtuel à l’aide d’Azure CLI .
Vous aurez besoin d’au moins un appareil Linux avec l’agent OSConfig installé et connecté à Azure IoT.
Pour plus d’informations, consultez : Comment et où installer l’agent OSConfig pour Linux.
Vous utiliserez le portail Azure ou Azure CLI pour interagir avec les appareils via votre IoT Hub
Pour plus d’étapes, choisissez votre expérience préférée :
- Vérifiez que vous êtes connecté au portail Azure et que vous pouvez accéder à la page Vue d’ensemble de votre IoT Hub
Exemple A. Obtenir toutes les propriétés d’informations de l’appareil
Dans cet exemple, nous récupérons simplement toutes les informations sur l’appareil disponibles dans ces deux espaces de noms. Vous devez utiliser ces informations dans le cadre d’un scénario d’inventaire dans votre solution cloud ou dans un scénario de diagnostic.
Instructions pas à pas suivez la capture d’écran
- Accédez au jumeau OSConfig pour l’appareil de votre choix
- À partir de la page de votre IoT Hub dans le portail Azure, accédez à Gestion des appareils > Appareils (ou Gestion des appareils > IoT Edge si l’appareil a IoT Edge installé)
- Cliquez sur le nom de l’appareil dans la liste des ID d’appareil
- Sous Identités de module, cliquez sur l’ID de module osconfig
- Cliquez sur Module Identity Twin
- Faites défiler pour afficher les
DeviceInfo
sections etTpm
sousproperties.reported
, et notez les informations disponibles, notammentcpuType
,osVersion
,totalMemory
,tpmVersion
et plusieurs autres.
Exemple B. Générer un rapport tabulaire d’informations sur le système d’exploitation et le processeur sur les appareils
Pour cet exemple, seul l’exemple Bash/Cloud Shell, à l’échelle, est renseigné. Cela montre l’utilisation des fonctions de requête IoT Hub avec la fonctionnalité d’Azure --output table
CLI. Il est prévu que vous intégriez ces points de données dans vos propres workflows cloud, en affichant les tables selon les besoins pour vos opérateurs de solution.
Non applicable. Accédez à Prérequis pour essayer les exemples sur les systèmes en direct dans ce document, puis choisissez « Bash / Cloud Shell ».
Exemple C. Nombre d’appareils avec et sans TPM
Cet exemple utilise l’opérateur GROUP BY d’Azure IoT Query, appliqué sur les informations TPM exposées par OSConfig.
Non applicable, consultez Portail Azure, à grande échelle.
Informations de référence
Description du modèle objet
Cette section décrit les propriétés de jumeau et les comportements correspondants.
Conseil
Dans les cas où le point de vue du jumeau simple souhaité/signalé diffère du point de vue amélioré DTDL, le premier est donné en premier suivi de la seconde entre parenthèses.
DeviceInfo
Chemin d’accès :
properties.reported.DeviceInfo
(DeviceInfo
composant)Description : informations à l’échelle de l’appareil, telles que le nom du système d’exploitation, la version du système d’exploitation, le type de processeur, etc.
Members (Membres)
Nom Type Notes osName string Nom du système d’exploitation, comme Ubuntu, Debian, etc. osVersion string Version du système d’exploitation, comme « 20.04 », etc. cpuType string Identificateur ISA de haut niveau, comme « aarch64 », « x86_64 », etc. cpuVendorId string Identificateur du fournisseur, comme « ARM », « GenuineIntel », etc. cpuModel string Identificateur du processeur, comme « Cortex-A72 », etc. totalMemory int Ram installée, telle que vue par le système d’exploitation freeMemory int RAM disponible (au moment du début du service)¹, comme le montre le système d’exploitation kernelName string Nom du noyau, comme « Linux » kernelVersion string Informations supplémentaires sur la build du noyau, telles que « #75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022 » kernelRelease string Identificateur de version de build du noyau, comme « 5.4.0-1065-raspi » productVendor string Fait référence au contexte du fournisseur de produits de l’appareil, comme « Contoso Systems, Inc » ; souvent vide ProductName string Nom du produit de l’appareil, comme « Raspberry Pi 4 Model B Rev 1.4 » productVersion string Version du produit de l’appareil ; souvent vide systemCapabilities string De lshw -c system
systemConfiguration string De lshw -c system
osConfigVersion string Numéro de version de l’agent OSConfig représentant l’appareil ¹ La
freeMemory
propriété a été conçue pour la caractérisation générale du système, et non pour la surveillance dynamique. Par conséquent, elle ne met à jour la valeur qu’au démarrage du service, ce qui évite les dépenses de processeur et de réseau liées à la mise à jour continue de cette valeur. Pour une surveillance continue de la mémoire disponible, consultez Azure Monitor.Exemple de charge utile (comme indiqué dans la section du
properties.reported
jumeau)"DeviceInfo": { "__t": "c", "osName": "Ubuntu", "osVersion": "20.04.4", "cpuType": "aarch64", "cpuVendorId": "ARM", "cpuModel": "Cortex-A72", "totalMemory": 7998708, "freeMemory": 7168776, "kernelName": "Linux", "kernelVersion": "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022", "kernelRelease": "5.4.0-1065-raspi", "productVendor": "", "productName": "Raspberry Pi 4 Model B Rev 1.4", "productVersion": "", "systemCapabilities": "smp cp15_barrier setend swp tagged_addr_disabled", "systemConfiguration": "", "osConfigVersion": "1.0.3.2022062801" }
Tpm
Chemin d’accès :
properties.reported.Tpm
(Tpm
composant)Description : Présence et état du module de plateforme sécurisée exposé au système d’exploitation
Members (Membres)
Nom Type Notes tpmStatus enum of ints 0 (inconnu), 1 (détecté), 2 (non détecté) tpmVersion string Version de l’interface TPM, par exemple « 2.0 » tpmManufacturer string Identificateur, par exemple « IFX » Example payload (as seen in twin's
properties.reported
section)"Tpm": { "__t": "c", "tpmStatus": 1, "tpmVersion": "2.0", "tpmManufacturer": "IFX" }
Étapes suivantes
Pour obtenir une vue d’ensemble des scénarios et des fonctionnalités OSConfig, consultez :
Pour obtenir des exemples pratiques spécifiques, consultez :