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.
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 ² | Sí |
Dispositivos más eficaces con Linux ³ | Sí |
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") | Sí |
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:
- A. Instalar paquetes (más populares)
- B. Compilación a partir del origen (más flexible)
- C. Integrado (versión preliminar)
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:
- Vaya a la lista de dispositivos de IoT Hub
- Creación de una identidad de dispositivo si es necesario
- Vaya a las propiedades del dispositivo y copie la cadena de conexión.
En el dispositivo:
- 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 osconfig
y 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 | Sí |
Puerta de enlace de IoT Edge (parent/child) ³ |
Sí | 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.
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é establecido2
en .Asegúrese de que la
https_proxy
variable de entorno oHTTPS_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 ejecutarsudo systemctl daemon-reload
ysudo 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: