Tutorial: Device Update for Azure IoT Hub con el agente de paquetes en Ubuntu Server 18.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 por la actualización de Azure IoT Edge en Ubuntu Server 18.04 (x64) mediante el agente de paquetes de Device Update. Aunque en el tutorial se muestra cómo actualizar IoT Edge, con pasos similares puede actualizar otros paquetes, como el motor de contenedor que use.

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

Preparación de un dispositivo

Prepare un dispositivo de forma automática o manual.

Uso del botón automatizado Implementar en Azure

Para mayor comodidad, en este tutorial se usa una plantilla de Azure Resource Manager basada en cloud-init que tiene como fin ayudarle a configurar rápidamente una máquina virtual de Ubuntu 18.04 LTS. 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.

  1. Para empezar, seleccione el botón:

    Captura de pantalla que muestra el botón Implementar en Azure para iotedge-vm-deploy.

  2. Rellene los cuadros de texto disponibles:

    Captura de pantalla que muestra la plantilla iotedge-vm-deploy.

    • 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 modificar, ya que se establecerá en Ubuntu 18.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.

  3. Confirme que la implementación finaliza 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 haber implementado 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.

    Captura de pantalla que muestra el nombre DNS de la máquina virtual de IoT Edge.

    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>.

  4. 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 se deben establecer todos los valores con la etiqueta "Colocar el valor aquí". Consulte Configuración de un agente DU.

    sudo nano /etc/adu/du-config.json
    
  5. 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:

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.

Preparación manual de un dispositivo

De forma parecida a los pasos automatizados mediante el script cloud-init, a continuación se indican los pasos manuales que se usan para instalar y configurar un dispositivo. Siga estos pasos para preparar un dispositivo físico.

  1. Siga las instrucciones que se indican en Instalación del entorno de ejecución de Azure IoT Edge.

    Nota

    El agente de Device Update no depende de IoT Edge. Sin embargo, se basa en el demonio del servicio de identidad de IoT que se instala con IoT Edge (1.2.0 y versiones posteriores) para obtener una identidad y conectarse a IoT Hub.

    Aunque no se trata en este tutorial, el demonio del servicio de identidad de IoT se puede instalar de forma independiente en dispositivos IoT basados en Linux. La secuencia de instalación es importante. El agente de paquetes de Device Update debe instalarse después del servicio de identidad de IoT. De lo contrario, el agente de paquetes no se registrará como componente autorizado para establecer una conexión a IoT Hub.

  2. Instale los paquetes .deb del agente de Device Update:

    sudo apt-get install deviceupdate-agent 
    
  3. Escriba la cadena de conexión principal del módulo (o dispositivo, en función de cómo se aprovisionó el dispositivo con Device Update) en el archivo de configuración. Tenga en cuenta que se deben establecer todos los valores con la etiqueta "Colocar el valor aquí". Consulte Configuración de un agente DU.

    sudo /etc/adu/du-config.json
    
  4. 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:

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

  1. Inicie sesión en Azure Portal y vaya al centro de IoT.

  2. En el panel izquierdo, en Dispositivos, busque el dispositivo IoT Edge y vaya al dispositivo gemelo o módulo gemelo.

  3. 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.

  4. Agregue un nuevo valor de etiqueta de Device Update como se muestra a continuación:

        "tags": {
            "ADUGroup": "<CustomTagValue>"
        },
    

    Captura de pantalla que muestra el gemelo con la información de la etiqueta.

    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

  1. 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 APT de muestra (sample-1.0.2-aziot-edge-apt-manifest.json) y su manifiesto de importación correspondiente (sample-1.0.2-aziot-edge-importManifest.json).

  2. 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.

  3. Seleccione la pestaña Actualizaciones.

  4. Seleccione + Importar nueva actualización.

  5. 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.

    Captura de pantalla que muestra la cuenta de almacenamiento.

  6. 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.

    Captura de pantalla que muestra la selección de archivos cargados.

    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.

  7. 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.

    Captura de pantalla que muestra el inicio del proceso de importación.

  8. 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.

    Captura de pantalla que muestra el estado del trabajo.

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.

  1. Vaya a la pestaña Grupos e implementaciones en la parte superior de la página.

    Captura de pantalla que muestra los dispositivos desagrupados.

  2. 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.

    Captura de pantalla que muestra la vista de cumplimiento de actualizaciones.

  3. 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

  1. 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.

  2. 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).

    Captura de pantalla que muestra los detalles de los grupos.

  3. 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.

    Captura de pantalla que muestra la selección de una actualización.

  4. 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.

    Captura de pantalla que muestra la creación de una implementación.

  5. En Detalles de implementación, Estado cambia a Activo. La actualización implementada está marcada con (implementando).

    Captura de pantalla que muestra la implementación como activa.

  6. Vea el gráfico de cumplimiento para comprobar que la actualización está en curso.

  7. 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.

    Captura de pantalla que muestra que la actualización se ha realizado correctamente.

Supervisar la implementación de actualizaciones

  1. Seleccione la pestaña Historial de implementación en la parte superior de la página.

    Captura de pantalla que muestra Historial de implementación.

  2. Seleccione el vínculo de detalles junto a la implementación que ha creado.

    Captura de pantalla que muestra los detalles de la implementación.

  3. Seleccione Actualizar para ver los detalles de estado más recientes.

Ha completado correctamente una actualización integral del paquete mediante Device Update para IoT Hub en un dispositivo Ubuntu Server 18.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.

Pasos siguientes