Partager via


Redémarrer ou arrêter des appareils avec Azure IoT et OSConfig

Important

La version 1.0.3 (publiée le 28 juin 2022) inclut des modifications cassants apportées aux noms de membres susceptibles d’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, examinez la documentation Audiences pour OSConfig.

Cet article explique comment redémarrer ou arrêter des appareils à l’aide de la fonctionnalité CommandRunner d’OSConfig. Cet article se concentre sur des exemples pratiques avec une explication minimale. Pour plus d’informations techniques sur la fonctionnalité CommandRunner , le modèle d’interaction, etc. consultez Comment interagir avec la fonctionnalité CommandRunner de OSConfig et d’Azure IoT.

Exemples de cas d’usage

Conditions préalables pour essayer les exemples sur les systèmes en direct

Si vous utilisez cet article pour 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 en direct (recommandé), alors :

  1. Vous aurez besoin d’un compte Azure avec un IoT Hub

    Cet article suppose une certaine connaissance des IoT Hub et des outils connexes. Par exemple, il suppose que vous êtes à l’aise avec la création d’IoT Hubs et l’attachement d’appareils. Si vous préférez une présentation pas à pas plus prescriptive de l’installation et de l’utilisation de OSConfig à partir de zéro, consultez : Démarrage rapide : Gérer un seul appareil IoT virtuel à l’aide d’Azure CLI à la place.

  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 obtenir d’autres é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. Redémarrer un ou plusieurs appareils

Pour les exemples d’appareils uniques, vous pouvez ajouter la directive de redémarrage directement au jumeau OSConfig de l’appareil que vous souhaitez redémarrer.

Pour les exemples à grande échelle, nous imaginons travailler avec un processus externe qui ajoute et supprime des needsReboot balises sur les appareils. Nous allons créer une configuration IoT Hub qui cible dynamiquement les appareils sur lesquels la needsReboot balise est définie dans le jumeau osconfig. Nous allons simuler ce processus externe en définissant explicitement la balise.

  1. Dans la page du portail de votre IoT Hub, accédez au jumeau OSConfig de l’appareil que vous souhaitez gérer, puis ajoutez ce qui suit à la properties.desired section, suivi d’une virgule pour la séparer de l’élément suivant dans properties.desired. action=1 ci-dessous spécifie le redémarrage.

    "CommandRunner": {
       "__t": "c",
       "commandArguments": {
          "commandId": "reboot_single_device_cmd",
          "arguments": "",
          "timeout": 30,
          "singleLineTextResult": false,
          "action": 1
       }
    }
    

    Capture d’écran montrant comment redémarrer un appareil spécifique à l’aide du module OSConfig à partir du portail Azure

  2. Optionnel: Une fois que l’appareil est de nouveau en ligne (cela prend quelques minutes), vous pouvez vérifier la section et rechercher la properties.reportedcommandeStatus qui affichera l’action de redémarrage terminée avec succès, comme indiqué ci-dessous.

    "CommandRunner": {
       "__t": "c",
       "commandStatus": {
          "commandId": "reboot_single_device_cmd",
          "resultCode": 0,
          "textResult": "",
          "currentState": 2
       }
    }
    

1.Facultatif : vous pouvez également vous connecter à votre appareil ou machine virtuelle pour valider une fois l’appareil redémarré.

Exemple B. Arrêt au lieu du redémarrage

L’arrêt à distance (par opposition au redémarrage) des appareils Edge/IoT est une opération moins courante, car l’appareil n’est plus disponible (ce qui empêche un moyen hors bande de le redémarrer). Même si, il existe des cas réels qui appellent à l’arrêt à distance. Imaginez un appareil problématique qui envoie des données endommagées, consomme trop d’octets de transmission satellite précieux, est considéré comme compromis ou est autrement plus dangereux que bon. Dans ce cas, il peut être souhaitable d’arrêter l’appareil jusqu’à ce qu’il puisse être remplacé ou réparé.

Pour effectuer l’arrêt des appareils via OSConfig, vous pouvez utiliser les mêmes flux de travail cloud que l’exemple A, mais en utilisant "action": 2 (arrêt) plutôt que "action": 1 (redémarrage) dans commandArguments. N’oubliez pas que chaque requête dans CommandRunner a besoin d’une nouvelle valeur commandId. Par exemple, si vous avez déjà effectué un redémarrage dans l’exemple A et que vous souhaitez maintenant basculer vers l’arrêt, vous devez modifier commandArguments non seulement avec "action": 2 , mais également avec une valeur non utilisée précédemment pour commandId, par exemple "commandId": "my_shutdown_cmd". Pour plus d’informations sur le modèle d’interaction CommandRunner, consultez : Comment interagir avec la fonctionnalité CommandRunner de OSConfig et d’Azure IoT.

Étapes suivantes

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

Pour obtenir des exemples pratiques spécifiques, consultez :