Compartir a través de


Cómo y dónde instalar el agente de OSConfig para Linux

Este artículo es para las personas que desean agregar funcionalidades de OSConfig a sus dispositivos, por lo que su configuración se puede aprovisionar, administrar y supervisar a través de los servicios de Azure IoT. Esto puede incluir generadores de dispositivos, integradores de sistemas, generadores de soluciones, etc.

El agente OSConfig es un componente compacto de Linux que proyecta la configuración local de cada dispositivo en Azure IoT para el aprovisionamiento y la administración a escala. Para obtener contexto sobre las motivaciones y el uso de OSConfig, consulte : ¿Qué es OSConfig para IoT?

¿Escalado de flotas o dispositivo único?

  • Para empezar a probar escenarios, puede instalar OSConfig en un solo dispositivo.

  • A escala, cada dispositivo cuya configuración se aprovisionará y administrará debe tener el agente OSConfig, como en el diagrama siguiente.

    Diagrama que muestra varios dispositivos que se conectan a IoT Hub, con un gemelo OSConfig para cada uno.

    Normalmente, el agente OSConfig se incluiría en las imágenes del sistema operativo del dispositivo de referencia, que luego se aplican a muchos dispositivos.

¿Qué tipos de dispositivos?

Clases de hardware

Consulte la tabla siguiente para obtener un resumen. Las notas detalladas siguen la tabla.

¿Instala OSConfig?
Clase MCU ¹ No en este momento
MPU/CPU menos potentes con Linux ²
Dispositivos más eficaces con Linux ³
Dispositivos que ejecutan Windows IoT Funcionalidades similares
Referencia integrada de CSP

Clase MCU: para el contexto, estos incluirían dispositivos Arduino, dispositivos basados en RP2040, etc. Normalmente, estos dispositivos ejecutan código específico del escenario sin sistema operativo o con un micro-sistema operativo, como AzureRTOS o FreeRTOS.

² Clase MPU/CPU menos potente con Linux: el agente está diseñado para ser compacto y eficaz, lo que permite su uso en dispositivos más pequeños capaces de ejecutar Linux.

³ Proceso perimetral más eficaz con Linux: como componente eficaz del lado del dispositivo, el agente OSConfig está perfectamente en casa en dispositivos de proceso perimetral más eficaces, como kits de Jetson de NVidia.

"Dispositivos IoT" de Linux frente a "dispositivos Perimetrales" de Linux

En el ecosistema de Azure IoT para Linux, los términos dispositivo IoT frente al dispositivo Edge a veces se usan para diferenciar si el dispositivo tiene IoT Edge instalado. También hay una correlación flexible con la clase de dispositivo (los dispositivos más grandes tienden a tener IoT Edge instalado).

OSConfig funciona en cualquier contexto. Puede ejecutarse en paralelo con IoT Edge, pero no requiere IoT Edge.

¿Qué ocurre con los secretos de dispositivo y qué ocurre con varias aplicaciones, agentes o módulos?

Se recomienda usar OSConfig junto con Azure IoT Identity Service (AIS).

AIS es el agente en dispositivo de Microsoft para controlar secretos y autenticación. AIS hace que sea perfecta para que varias aplicaciones, agentes o módulos perimetrales compartan una sola identidad de dispositivo. En los pasos siguientes se muestra cómo usar AIS y OSConfig juntos.

AIS está disponible de forma independiente y también se incluye en IoT Edge 1.2 y versiones posteriores. Tenga en cuenta lo siguiente al instalar.

¿Instala AIS?
El dispositivo no tiene IoT Edge (también conocido como "dispositivo IoT")
El dispositivo tiene IoT Edge 1.2 o superior Sí!
El dispositivo tiene IoT Edge 1.1 o inferior No²

¹ IoT Edge 1.2 y versiones posteriores incluyen los componentes de AIS. Para simplificar las instrucciones, los pasos siguientes siempre incluyen la instalación de AIS. Este enfoque permite al administrador de paquetes detectar si este paso es una operación no operativa, en lugar de volver a crear esa lógica externamente.

² No instale AIS en dispositivos con IoT Edge 1.1 o inferior. Considere la posibilidad de pasar a una versión posterior de IoT Edge. Si no está listo para actualizar IoT Edge, pero aún desea explorar escenarios de OSConfig, considere la posibilidad de probar los escenarios en otro dispositivo o máquina virtual por ahora.

Trabajo 1. Instalación de los componentes en el dispositivo

Hay tres opciones para satisfacer sus necesidades:

  • A. Instalar paquetes
  • B. Creación a partir del origen
  • C. Uso de dispositivos con las funcionalidades integradas

Elija su experiencia preferida a continuación para obtener instrucciones:

Los paquetes de instalación listos están disponibles para arm64 (también conocido como aarch64), amd64 (también conocido como x86_64) en:

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

Paso 1.1. Conexión de un dispositivo a packages.microsoft.com

Puede usar los siguientes comandos de ejemplo para conectar el administrador de paquetes del sistema operativo al canal estable en 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

Sugerencia

En el ejemplo anterior se conecta el prod administrador de paquetes al canal en packages.microsoft.com, que es adecuado para la mayoría de los dispositivos y situaciones. Para obtener información sobre las compilaciones en versión preliminar, consulte Acerca de las compilaciones de versión preliminar de OSConfig o "insiders".

Paso 1.2. Instalación del paquete de AIS

Precaución

Como se indicó anteriormente, no instale AIS en un dispositivo con IoT Edge 1.1 o inferior. AIS es para dispositivos sin IoT Edge o dispositivos con IoT Edge 1.2 o superior.

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

Paso 1.3. Instalación del paquete OSConfig

sudo apt-get install -y osconfig

Si solo va a instalar los componentes en este momento (por ejemplo, preparar una imagen base) no se conecta a Azure, puede detenerse aquí. Los pasos siguientes se realizarían más adelante, quizás por el cliente.

Trabajo 2. Conexión con Azure

Ahora que el agente OSConfig y AIS están presentes en el dispositivo, el siguiente paso es configurar el dispositivo con una identidad para que pueda conectarse a Azure.

Sugerencia

Algunos dispositivos pueden tener mecanismos para hacerlo en su nombre. Por ejemplo, los dispositivos de Azure Percept incluyen una experiencia de configuración para conectar el dispositivo.

Paso 2.1. Establecimiento de la credencial del dispositivo en AIS en el dispositivo

AIS admite varios escenarios de implementación y métodos de autenticación.

En el ejemplo simplista siguiente se usa una cadena de conexión con una clave simétrica. Para escenarios de producción, elija entre las opciones de autenticación más sólidas que se describen en Configuración de Azure IoT Identity Service.

Ejemplo rápido: Conexión con una clave simétrica

En Azure Portal:

  1. Vaya a la lista de dispositivos de IoT Hub
  2. Creación de una identidad de dispositivo si es necesario
  3. Vaya a las propiedades del dispositivo y copie la cadena de conexión.

En el dispositivo:

  1. Ejecute los siguientes comandos para establecer la credencial en AIS, reemplazando el marcador de posición de cadena de conexión por el suyo propio.
sudo aziotctl config mp –-connection-string "<your connection string from IoT Hub>"
sudo aziotctl config apply

Paso 2.2. Comprobación de la conexión correcta a Azure

Puede comprobar que AIS y OSConfig se conectan a IoT Hub mediante estos comandos en el dispositivo:

sudo aziotctl check
sudo systemctl status osconfig | grep Active

La salida del aziotctl check comando debe indicar todas las pruebas superadas.

La salida de systemctl status osconfig debe incluir Active: active. En algunos casos, es posible que vea Active: activating (auto-restart) en su lugar, lo que significa que systemd está esperando a un temporizador para reiniciar el servicio. Para pasar esto inmediatamente en lugar de esperar, ejecute sudo systemctl restart osconfigy vuelva a intentar el comando status.

¡Ya está! El cliente OSConfig ahora se está ejecutando en el dispositivo.

Configuración opcional del agente

Muchas personas pueden omitir esta sección y simplemente usar los comportamientos predeterminados. Si tiene restricciones de entorno o gobernanza, como servidores proxy, restricciones de firewall de salida o redes en capas, consulte lo siguiente:

selección de protocolo IoT Hub

Sugerencia

La selección de protocolo se agregó al canal prod/estable en la versión v1.0.2.2022040405. Asegúrese de que usa la versión prod/estable más reciente de OSConfig.

Al comunicarse con el IoT Hub, el agente OSConfig puede usar transporte de telemetría de Message Queuing sin formato (MQTT) o puede usar MQTT a través de WebSockets (MQTT_WS).

Muchas personas no necesitan especificar un protocolo y simplemente pueden usar comportamientos predeterminados. Si necesita especificar un protocolo basado en una de las consideraciones siguientes, establecería el Protocol valor en /etc/osconfig/osconfig.json.

MQTT MQTT_WS
Puerto TCP ¹ 8883 443
Servidor proxy ² No
Puerta de enlace de IoT Edge
(parent/child) ³
No
Identificador de protocolo
para establecer en osconfig.json
1 2

¹ Hace referencia al puerto TCP utilizado cuando el agente OSConfig del dispositivo se conecta de salida a IoT Hub

² Hace referencia a si OSConfig puede usar explícitamente un servidor proxy HTTP (a través de https_proxy variable de entorno)

³ Hace referencia al escenario de puerta de enlace transparente IoT Edge, en el que OSConfig que se ejecuta en un dispositivo secundario se conecta a IoT Hub a través de un dispositivo primario

Conexión a través de un servidor proxy HTTP

Si el entorno requiere OSConfig para conectarse a IoT Hub a través de un servidor proxy HTTP, consulte lo siguiente:

Sugerencia

Se agregó compatibilidad con el servidor proxy al canal prod/estable en la versión v1.0.2.2022040405. Ensure you are using the latest prod/stable version of OSConfig.

  1. Como se indicó en IoT Hub selección del protocolo, solo se puede usar MQTT_WS con un servidor proxy HTTP. Para activar MQTT_WS, asegúrese de que el Protocol valor de /etc/osconfig/osconfig.json esté establecido 2en .

  2. Asegúrese de que la https_proxy variable de entorno o HTTPS_PROXY esté establecida en el contexto donde se ejecuta OSConfig.

    Normalmente, sysadmins o generadores de imágenes lo transmiten editando los archivos de unidad systemd para cualquier servicio (incluido OSConfig) que debe usar el servidor proxy.

    Por ejemplo, agregaría una línea como
    Environment="https_proxy=http://myproxy.example.com:3128"
    a la [Service] parte de /etc/systemd/system/osconfig.service.
    Asegúrese de ejecutar sudo systemctl daemon-reload y sudo systemctl restart osconfig después de editar el archivo.

Pasos siguientes

Ahora que tiene un dispositivo que ejecuta OSConfig y está conectado a Azure IoT, puede probar escenarios de administración.

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

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