Tutorial sobre Device Update para Azure IoT Hub con el agente de paquetes en Ubuntu Server 18.04 (x64)

Device Update para IoT Hub admite dos formas de actualizaciones: basada en imágenes y basada en paquetes.

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 actualización de dispositivos la información que necesita para descargar e instalar los paquetes especificados en el archivo de manifiesto de APT (así como sus dependencias) desde un repositorio designado.

Este tutorial integral a otro 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. Complete esta introducción al proceso de actualización de un extremo a otro y, a continuación, elija su forma preferida de actualizar una plataforma de sistema operativo para profundizar en los detalles.

En este tutorial, aprenderá a:

  • Descargar e instalar Device Update Agent y sus dependencias
  • Adición de una etiqueta a un dispositivo
  • Importación de una actualización
  • Creación de un grupo de dispositivos
  • Implementar una actualización del paquete
  • Supervisar la implementación de actualizaciones

Requisitos previos

Preparación de un dispositivo

Uso del botón de implementación automatizada 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. Esta plantilla instala el entorno de ejecución de Azure IoT Edge y el agente de paquetes de Device Update para, a continuación, configurar automáticamente el dispositivo con la información de aprovisionamiento mediante la cadena de conexión de un dispositivo IoT Edge (requisito previo) que proporcione. La plantilla de Azure Resource Manager también evita la necesidad de iniciar una sesión de SSH para completar la instalación.

  1. Para empezar, haga clic en el siguiente botón:

    Botón Implementar en Azure de iotedge-vm-deploy

  2. En la ventana que se abre, rellene los campos de formulario disponibles:

    Captura de pantalla de 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.

    Prefijo de etiqueta DNS: valor requerido (de su elección) que se usa para colocar el nombre de host de la máquina virtual a modo de prefijo.

    Nombre de usuario administrador: nombre de usuario al que se proporcionarán 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 la instancia de IoT Hub 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.

    Ubicación: región geográfica donde se va a implementar la máquina virtual. Este valor se establece de forma predeterminada en la ubicación del grupo de recursos seleccionado.

    Tipo de autenticación: elija sshPublicKey o password, según cuál sea su preferencia.

    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.

    Cuando se hayan rellenado todos los campos, active la casilla situada en la parte inferior de la página para aceptar los términos y seleccione Adquirir para iniciar 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. Tome nota del nombre de la máquina, que debe tener el formato vm-0000000000000. Anote también el Nombre DNS asociado, que debe tener 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 con el nombre DNS de la máquina virtual iotedge

    Sugerencia

    Si quiere conectarse a través de SSH a la máquina virtual después de la instalación, use el nombre DNS asociado con el comando ssh <adminUsername>@<DNS_Name>.

(Opcional) Preparación manual de un dispositivo

Como los pasos automatizados por el script cloud-init, a continuación se indican los pasos manuales para instalar y configurar el dispositivo. Estos pasos se pueden usar 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 paquetes 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. A continuación, instale los paquetes .deb de Device Update Agent.

    sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt 
    

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

Adición de una etiqueta a un dispositivo

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

  2. En "IoT Edge", en el panel de navegación izquierdo, busque el dispositivo de IoT Edge y vaya al dispositivo 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 de 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>"
            },

Importación de actualización

  1. Vaya a Versiones de Device Update en GitHub y haga clic en la lista desplegable "Recursos".

  2. Haga clic en el archivo Edge.package.update.samples.zip para descargarlo.

  3. Extraiga el contenido de la carpeta para ver un manifiesto de APT de ejemplo y su manifiesto de importación correspondiente.

  4. En Azure Portal, seleccione la opción Actualizaciones del dispositivo en Administración de dispositivos automática, en la barra de navegación izquierda de IoT Hub.

  5. Seleccione la pestaña Actualizaciones.

  6. Seleccione "+ Import New Update" (Importar nueva actualización).

  7. Seleccione el icono de la carpeta o el cuadro de texto en "Select an Import Manifest File" (Seleccionar un archivo de manifiesto de importación). Verá un cuadro de diálogo para seleccionar archivos. Seleccione el archivo de manifiesto de importación sample-1.0.1-aziot-edge-importManifest.json desde la carpeta que descargó anteriormente. Seleccione el icono de la carpeta o el cuadro de texto en "Select one or more update files" (Seleccionar uno o varios archivos de importación). Verá un cuadro de diálogo para seleccionar archivos. Seleccione el archivo de actualización del manifiesto APT sample-1.0.1-aziot-edge-apt-manifest.jsondesde la carpeta que descargó anteriormente. Se actualizarán los paquetes aziot-identity-service y aziot-edge a la versión 1.2.0~rc4-1 en el dispositivo.

    Captura de pantalla que muestra la selección del archivo de actualización.

  8. Seleccione el icono de la carpeta o el cuadro de texto en "Select a storage container" (Seleccionar un contenedor de almacenamiento). Luego, seleccione la cuenta de almacenamiento adecuada.

  9. Si ya ha creado un contenedor, puede volver a usarlo (de lo contrario, seleccione "+ Contenedor" para crear contenedor de almacenamiento para las actualizaciones). Seleccione el contenedor que desee usar y haga clic en "Seleccionar".

    Captura de pantalla que muestra la selección del contenedor.

  10. Seleccione "Enviar" para iniciar el proceso de importación.

  11. Se inicia el proceso de importación y la pantalla cambia a la sección "Historial de importación". Seleccione "Actualizar" para ver el progreso hasta que se complete el proceso de importación. Según sea el tamaño de la actualización, la importación puede tardar pocos minutos o más tiempo.

    Captura de pantalla que muestra la secuencia de importación de la actualización.

  12. Cuando la columna Estado indique que la importación se ha realizado correctamente, seleccione el encabezado "Ready to Deploy" (Listo para implementar). Debería ver la actualización importada en la lista.

Más información sobre la importación de actualizaciones.

Creación de un grupo de actualización

  1. Vaya a la instancia de IoT Hub que conectó anteriormente a la instancia de Device Update.

  2. Seleccione la opción Actualizaciones del dispositivo en Administración de dispositivos automática en la barra de navegación izquierda.

  3. Seleccione la pestaña Groups (Grupos) en la parte superior de la página.

  4. Seleccione el botón Add (Agregar) para crear un grupo.

  5. Seleccione en la lista la etiqueta IoT Hub que ha creado en el paso anterior. Seleccione Create update group (Crear grupo de actualización).

    Captura de pantalla que muestra la selección de etiquetas.

Más información sobre cómo agregar etiquetas y crear grupos de actualización

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 la columna Actualizaciones disponibles. Es posible que tenga que actualizar una vez.

  2. Haga clic en el vínculo a la actualización disponible.

  3. Confirme que se ha seleccionado el grupo correcto como grupo de destino y programe la implementación.

    Select update (Seleccionar actualización)

    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 u hora diferentes si quiere que la implementación comience antes.

  4. Seleccione Deploy update (Implementar actualización).

  5. Consulte el gráfico de compatibilidad. Debería ver que la actualización está en curso.

    Actualización en curso

  6. Una vez que el dispositivo se haya actualizado correctamente, debería ver que el gráfico de compatibilidad y la actualización de los detalles de implementación reflejan lo mismo.

    Actualización correcta

Supervisión de una implementación de actualizaciones

  1. Seleccione la pestaña Implementaciones en la parte superior de la página.

    Pestaña Implementaciones

  2. Seleccione la implementación que creó para ver los detalles de la implementación.

    Detalles de implementación

  3. Seleccione Actualizar para ver los detalles de estado más recientes. Continúe con este proceso hasta que el estado cambie a Correcto.

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, el centro de IoT y el dispositivo de IoT Edge (si creó la máquina virtual mediante el botón Implementar en Azure). Para ello, vaya a cada recurso individual y seleccione "Delete" (Eliminar). Antes de limpiar la cuenta de Device Update, debe limpiar la instancia de Device Update.

Pasos siguientes