Compartir a través de


Reinicio o apagado de dispositivos con Azure IoT y OSConfig

Importante

La versión 1.0.3 (publicada el 28 de junio de 2022) incluye cambios importantes en los nombres de miembros que pueden afectar a los usuarios existentes. Para obtener más información, consulte: Los nombres de miembro pasan de PascalCase a camelCase en la versión 1.0.3.

Audiencia y ámbito

Este artículo está diseñado para admitir a los usuarios que aprovisionan o administran dispositivos con Azure IoT. Si eso no suena como usted, considere la posibilidad de echar un vistazo a la documentación de Audiences for OSConfig.

En este artículo se explica cómo reiniciar o apagar dispositivos mediante la característica CommandRunner de OSConfig. Este artículo se centra en ejemplos prácticos con una explicación mínima. Para obtener información técnica sobre la característica CommandRunner , el modelo de interacción, etc. consulte Interacción con la característica CommandRunner de OSConfig y Azure IoT.

Ejemplos de caso de uso

Requisitos previos para probar los ejemplos en sistemas activos

Si usa este artículo como referencia (por ejemplo, está aquí para copiar un nombre de propiedad), no hay requisitos previos.

Si desea probar los ejemplos en sistemas dinámicos (recomendado), haga lo siguiente:

  1. Necesitará una cuenta de Azure con un IoT Hub

    En este artículo se supone que está familiarizado con IoT Hub y las herramientas relacionadas. Por ejemplo, se supone que está familiarizado con la creación de ioT Hubs y la conexión de dispositivos. Si prefiere una introducción paso a paso más prescriptiva para instalar y usar OSConfig desde cero, consulte Inicio rápido: Administración de un único dispositivo IoT virtual mediante la CLI de Azure en su lugar.

  2. Necesitará al menos un dispositivo Linux con el agente OSConfig instalado y conectado a Azure IoT.

    Para obtener más información, vea Cómo y dónde instalar el agente de OSConfig para Linux.

  3. Usará Azure Portal o la CLI de Azure para interactuar con los dispositivos a través de la IoT Hub

    Para conocer más pasos, elija su experiencia preferida:

  1. Asegúrese de que ha iniciado sesión en Azure Portal y puede acceder a la página Información general de la IoT Hub Captura de pantalla que muestra IoT Hub y dispositivos desde Azure Portal.

Ejemplo A. Reiniciar uno o varios dispositivos

En los ejemplos de dispositivos únicos, puede agregar la directiva de reinicio directamente al gemelo OSConfig del dispositivo que desea reiniciar.

Para los ejemplos a escala, imaginemos que se trabaja con un proceso externo que agrega y quita needsReboot etiquetas a los dispositivos. Crearemos una configuración de IoT Hub que tiene como destino dinámicamente los dispositivos donde se establece la needsReboot etiqueta en el gemelo osconfig. Simularemos este proceso externo estableciendo explícitamente la etiqueta .

  1. En la página del portal de la IoT Hub, vaya al gemelo OSConfig para el dispositivo que desea administrar y agregue lo siguiente a la properties.desired sección, seguido de una coma para separarla del siguiente elemento de properties.desired. action=1 siguiente especifica el reinicio.

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

    Captura de pantalla que muestra cómo reiniciar un dispositivo específico mediante el módulo OSConfig desde Azure Portal

  2. Opcional: Una vez que el dispositivo vuelva a estar en línea (esto tardará unos minutos), puede comprobar la properties.reported sección y comprobar el comandoStatus que mostrará la acción de reinicio completada correctamente, como se muestra a continuación.

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

1.Opcional: también puede iniciar sesión en el dispositivo o la máquina virtual para validar después de reiniciar el dispositivo.

Ejemplo B. Apagado en lugar de reinicio

El apagado remoto (en lugar de reiniciar) los dispositivos perimetrales o IoT es una operación menos común, ya que el dispositivo no está disponible posteriormente (lo que impide que se inicie la copia de seguridad). Incluso así, hay casos reales que llaman al apagado remoto. Imagine que un dispositivo problemático que envía datos dañados es demasiado consumido por bytes de transmisión satélite preciosos, se cree que está en peligro o que está haciendo más daño que bien. En tales casos, puede ser conveniente apagar el dispositivo hasta que se pueda reemplazar o reparar.

Para realizar el apagado de los dispositivos a través de OSConfig, puede usar los mismos flujos de trabajo en la nube que el ejemplo A, pero con "action": 2 (apagado) en lugar "action": 1 de (reinicio) en commandArguments. Tenga en cuenta que cada solicitud de CommandRunner necesita un nuevo valor commandId. Por ejemplo, si ya ha realizado un reinicio en el ejemplo A y ahora desea cambiar al apagado, deberá modificar commandArguments no solo con "action": 2 , sino también con un valor no usado previamente para commandId, como "commandId": "my_shutdown_cmd". Para más información sobre el modelo de interacción de CommandRunner, consulte: Interacción con la característica CommandRunner de OSConfig y Azure IoT.

Pasos siguientes

Para obtener información general sobre los escenarios y funcionalidades de OSConfig, consulte:

Para obtener ejemplos prácticos específicos, consulte: