Tutorial: Device Update for IoT Hub mediante el agente de paquetes en Ubuntu Server 22.04 x64
Device Update for IoT Hub admite actualizaciones basadas en imágenes, en paquetes y en scripts.
Las actualizaciones basadas en paquetes son actualizaciones dirigidas que solo modifican una aplicación o un componente específicos en el dispositivo. Esto conduce a un menor consumo de ancho de banda y ayuda a reducir el tiempo necesario para descargar e instalar la actualización. Normalmente, las actualizaciones basadas en paquetes también implican menos tiempo de inactividad de los dispositivos al aplicar una actualización y evitan la sobrecarga asociada a la creación de imágenes. Usan un manifiesto de APT que proporciona al agente de Device Update la información que necesita para descargar e instalar los paquetes especificados en el archivo de manifiesto de APT (y sus dependencias) desde un repositorio designado.
Este tutorial le guía a través de la actualización de Azure IoT Edge en Ubuntu Server 22.04 x64 mediante el agente de paquetes de actualización del dispositivo. Aunque en el tutorial se muestra cómo instalar Microsoft Defender para IoT, con pasos similares podría actualizar otros paquetes, como el propio IoT Edge o el motor de contenedor que usa.
Las herramientas y los conceptos de este tutorial se siguen aplicando, aunque tenga previsto usar una configuración de plataforma de sistema operativo diferente. Finalice esta introducción con un proceso de actualización completo. A continuación, elija la forma que prefiera para actualizar una plataforma de sistema operativo para profundizar en los detalles.
En este tutorial, aprenderá a:
- Descargar e instalar el agente de Device Update y sus dependencias.
- Agregar una etiqueta al dispositivo.
- Importar una actualización.
- Implementar una actualización del paquete.
- Supervisar la implementación de la actualización.
Requisitos previos
Si aún no lo ha hecho, cree una cuenta y una instancia de Device Update. Configure un centro de IoT.
Necesita la cadena de conexión de un dispositivo de IoT Edge.
Si ha usado el tutorial sobre el agente del simulador para realizar pruebas anteriores a esto, ejecute el siguiente comando para invocar el controlador APT e implementar actualizaciones de paquetes por vía inalámbrica en este tutorial.
sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/apt:1'
Preparación de un dispositivo
Uso del botón automatizado Implementar en Azure
Para mayor comodidad, en este tutorial se usa una cloud-initbasada plantilla de Azure Resource Manager para ayudarle a configurar rápidamente una máquina virtual Ubuntu 22.04 LTS (máquina virtual). Instala el entorno de ejecución de Azure IoT Edge y el agente de paquetes de Device Update. A continuación, configura automáticamente el dispositivo con la información de aprovisionamiento mediante la cadena de conexión del dispositivo IoT Edge (requisito previo) que proporcione. La plantilla de Resource Manager también evita la necesidad de iniciar una sesión de SSH para completar la instalación.
Para empezar, seleccione el botón:
Rellene los cuadros de texto disponibles:
- Suscripción: suscripción de Azure activa en la que se va a implementar la máquina virtual.
- Grupo de recursos: grupo de recursos existente o recién creado que va a contener la máquina virtual y sus recursos asociados.
- Región: la región geográfica en la que se implementará la máquina virtual. Este valor tiene como valor predeterminado la ubicación del grupo de recursos seleccionado.
- Prefijo de etiqueta DNS: valor requerido (de su elección) que se usa como prefijo del nombre de host de la máquina virtual.
- Nombre de usuario administrador: nombre de usuario al que se proporcionan privilegios raíz en la implementación.
- Cadena de conexión de dispositivo: cadena de conexión de un dispositivo que se ha creado en el centro de IoT de su elección.
- Tamaño de VM: tamaño de la máquina virtual que se va a implementar.
- Versión del SO Ubuntu: versión del sistema operativo Ubuntu que se va a instalar en la máquina virtual base. Deje el valor predeterminado sin cambios porque ya está establecido en Ubuntu 22.04-LTS.
- Tipo de autenticación: elija sshPublicKey o contraseña según sus preferencias.
- Contraseña o clave de administrador: valor de la clave pública SSH o de la contraseña en función del tipo de autenticación que se haya escogido.
Una vez rellenos todos los cuadros, active la casilla situada en la parte inferior de la página para aceptar los términos. Seleccione Comprar para comenzar la implementación.
Compruebe que la implementación se ha completado correctamente. Aguarde unos minutos a que se complete la implementación para que las actividades posteriores a la instalación y la configuración terminen de instalar IoT Edge y el agente de actualización del paquete de dispositivos.
Se debe implementar un recurso de máquina virtual en el grupo de recursos seleccionado. Anote el nombre de la máquina, que tiene el formato
vm-0000000000000
. Anote también el nombre DNS asociado, que tiene el formato<dnsLabelPrefix>
.<location>
.cloudapp.azure.com.El nombre DNS se puede obtener en la sección Información general de la máquina virtual recién implementada en Azure Portal.
Sugerencia
Para conectarse a través de SSH a esta máquina virtual después de configurarla, use el nombre DNS asociado con el siguiente comando:
ssh <adminUsername>@<DNS_Name>
.Instale el agente de actualización de dispositivos en la máquina virtual.
sudo apt-get install deviceupdate-agent
Abra los detalles de configuración (consulte cómo definir el archivo de configuración aquí) con el comando siguiente. Establezca connectionType en "AIS" y connectionData como una cadena vacía. Tenga en cuenta que todos los valores con la etiqueta 'Colocar valor aquí' deben estar definidos. Consulte Configuración de un agente de Device Update.
sudo nano /etc/adu/du-config.json
Reinicio del agente de Device Update.
sudo systemctl restart deviceupdate-agent
Los paquetes de software de Device Update para Azure IoT Hub están sujetos a los siguientes términos de licencia:
- Licencia de actualización de dispositivos para IoT Hub
- Licencia de cliente de Optimización de distribución
Lea los términos de licencia antes de usar un paquete. La instalación y el uso de un paquete constituyen la aceptación de estos términos. Si no acepta los términos de licencia, no utilice ese paquete.
Adición de una etiqueta al dispositivo
Inicie sesión en Azure Portal y vaya al centro de IoT.
En el panel izquierdo, en Dispositivos, busque el dispositivo IoT Edge y vaya al dispositivo gemelo o módulo gemelo.
En el módulo gemelo del agente de Device Update, cambie los valores de etiqueta de Device Update existentes a null para eliminarlos. Si usa la identidad del dispositivo con el agente de Device Update, realice estos cambios en el dispositivo gemelo.
Agregue un nuevo valor de etiqueta de Device Update como se muestra a continuación:
"tags": { "ADUGroup": "<CustomTagValue>" },
En esta captura de pantalla se muestra la sección donde se debe agregar la etiqueta en el gemelo.
Importación de la actualización
Vaya a Versiones de Device Update en GitHub y seleccione la lista desplegable Recursos. Para descargar
Tutorial_IoTEdge_PackageUpdate.zip
, selecciónelo. Extraiga el contenido de la carpeta para detectar un manifiesto de APT de ejemplo (sample-defender-iot-apt-manifest.json) y su manifiesto de importación correspondiente (sample-defender-iot--importManifest.json).Inicie sesión en Azure Portal y vaya a su instancia de IoT Hub con Device Update. En el panel izquierdo, en Administración automática de dispositivos, seleccione Actualizaciones.
Seleccione la pestaña Actualizaciones.
Seleccione + Importar nueva actualización.
Elija + Seleccionar uno del contenedor de almacenamiento. Seleccione una cuenta existente o cree una nueva mediante + Cuenta de almacenamiento. A continuación, seleccione un contenedor existente o cree uno nuevo mediante + Contenedor. Este contenedor se usa para almacenar provisionalmente los archivos de actualización para la importación.
Nota:
Se recomienda usar un nuevo contenedor cada vez que importe una actualización para evitar la importación accidental de archivos de actualizaciones anteriores. Si no usa un contenedor nuevo, asegúrese de eliminar los archivos del contenedor existente antes de completar este paso.
En el contenedor, seleccione Cargar y vaya hasta los archivos que descargó en el paso 1. Después de seleccionar todos los archivos de actualización, seleccione Cargar. A continuación, seleccione el botón Seleccionar para volver a la página Importar actualización.
En esta captura de pantalla se muestra el paso de importación. Es posible que los nombres de archivo no coincidan con los usados en el ejemplo.
En la página Importar actualización, revise los archivos que se importarán. A continuación, seleccione Importar actualización para iniciar el proceso de importación.
Se inicia el proceso de importación y la pantalla cambia a la sección Historial de importación. Cuando la columna Estado indique que la importación se ha realizado correctamente, seleccione el encabezado Available Updates (Actualizaciones disponibles). Debería ver la actualización importada en la lista.
Para más información sobre el proceso de importación, consulte Importación de una actualización a Device Update.
Visualización de grupos de dispositivos
Device Update usa grupos para organizar los dispositivos. Este servicio ordena automáticamente los dispositivos por grupos en función de las etiquetas y propiedades de compatibilidad que tienen asignadas. Cada dispositivo pertenece solo a un grupo, pero los grupos pueden tener varios subgrupos para ordenar diferentes clases de dispositivos.
Vaya a la pestaña Grupos e implementaciones en la parte superior de la página.
Vea la lista de grupos y el gráfico de cumplimiento de actualizaciones. En el gráfico de Update Compliance se muestra el recuento de dispositivos en los distintos estados de compatibilidad: En la actualización más reciente, Nuevas actualizaciones disponibles y Actualizaciones en curso. Obtenga más información sobre Update Compliance.
Debería ver un grupo de dispositivos que contiene el dispositivo simulado que ha configurado en este tutorial junto con las actualizaciones disponibles para los dispositivos del nuevo grupo. Si hay dispositivos que no cumplen los requisitos de clase de dispositivo del grupo, se mostrarán en un grupo no válido correspondiente. Para implementar la mejor actualización disponible en el nuevo grupo definido por el usuario desde esta vista, seleccione Implementar junto al grupo.
Para más información sobre etiquetas y grupos, consulte Administración de grupos de dispositivos.
Implementación de la actualización
Una vez creado el grupo, debería ver una nueva actualización disponible para el grupo de dispositivos, con un vínculo a la actualización en Mejor actualización. Puede que tenga que actualizar una vez.
Para más información sobre el cumplimiento, consulte Cumplimiento de Device Update.
Para elegir el grupo de destino, seleccione el nombre del grupo. Se le dirigirá a los detalles del grupo en Group basics (Conceptos básicos del grupo).
Para iniciar la implementación, vaya a la pestaña Implementación actual. Seleccione el vínculo de implementación situado junto a la actualización deseada en la sección Actualizaciones disponibles. La mejor actualización disponible para un grupo determinado se indica con el término Óptima resaltado.
Programe la implementación para que se inicie inmediatamente o en el futuro. Seleccione Crear.
Sugerencia
De forma predeterminada, la fecha y hora de inicio es de 24 horas a partir de la hora actual. Asegúrese de seleccionar una fecha y hora diferentes si quiere que la implementación comience antes.
En Detalles de implementación, Estado cambia a Activo. La actualización implementada está marcada con (implementando).
Vea el gráfico de cumplimiento para comprobar que la actualización está en curso.
Una vez que el dispositivo se ha actualizado correctamente, puede ver que el gráfico de cumplimiento y los detalles de la implementación se actualizan para reflejar lo mismo.
Supervisar la implementación de actualizaciones
Seleccione la pestaña Historial de implementación en la parte superior de la página.
Seleccione el vínculo de detalles junto a la implementación que ha creado.
Seleccione Actualizar para ver los detalles de estado más recientes.
Ahora ha completado una actualización correcta del paquete de un extremo a otro mediante Device Update for IoT Hub en un dispositivo Ubuntu Server 22.04 x64.
Limpieza de recursos
Cuando ya no los necesite, limpie la cuenta de Device Update, la instancia y el centro de IoT. Limpie también el dispositivo IoT Edge si creó la máquina virtual mediante el botón Implementar en Azure. Para limpiar los recursos, vaya a cada recurso individual y seleccione Eliminar. Antes de limpiar la cuenta de Device Update, debe limpiar la instancia de Device Update.