Partager via


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 :

  1. 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 .

  2. 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.

  3. 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 :

  1. Vérifiez que vous êtes connecté au portail Azure et que vous pouvez accéder à la page Vue d’ensemble de votre IoT Hub Capture d’écran montrant IoT Hub et les appareils à partir du portail Azure

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

Navigation vers le jumeau de module OSConfig pour voir les informations sur l’appareil

  1. Accédez au jumeau OSConfig pour l’appareil de votre choix
    1. À 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é)
    2. Cliquez sur le nom de l’appareil dans la liste des ID d’appareil
    3. Sous Identités de module, cliquez sur l’ID de module osconfig
    4. Cliquez sur Module Identity Twin
  2. Faites défiler pour afficher les DeviceInfo sections et Tpm sous properties.reported, et notez les informations disponibles, notamment cpuType, osVersion, totalMemory, tpmVersionet 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 :