Tutorial: Actualización de dispositivos para Azure IoT Hub mediante el agente de referencia del simulador de Ubuntu (18.04 x64)

La actualización de dispositivos para Azure IoT Hub admite actualizaciones basadas en imágenes, en paquetes y en scripts.

Las actualizaciones con imágenes proporcionan un mayor nivel de confianza en el estado final del dispositivo. Normalmente, es más fácil replicar los resultados de una actualización basada en imágenes entre un entorno de preproducción y un entorno de producción, ya que no plantea los mismos desafíos que los paquetes y sus dependencias. Debido a su naturaleza atómica, también se puede adoptar fácilmente un modelo de conmutación por error A/B.

Este tutorial le guiará por los pasos necesarios para completar una actualización basada en imágenes de un extremo a otro mediante Device Update for IoT Hub.

En este tutorial, aprenderá a:

  • Descargar e instalar una imagen.
  • Adición de una etiqueta a un dispositivo IoT
  • Importar una actualización.
  • Crear un grupo de dispositivos.
  • Implementar una actualización basada en imágenes.
  • Supervisar la implementación de la actualización.

Requisitos previos

Si todavía no lo ha hecho, cree una instancia y una cuenta de Device Update, y configure un centro de IoT.

Descargue el archivo ZIP denominado Tutorial_Simulator.zip de Recursos de versión en la versión más reciente y descomprímalo.

Adición de un dispositivo a Azure IoT Hub

Una vez que el agente de Device Update se ejecuta en un dispositivo IoT, debe agregar el dispositivo a IoT Hub. En IoT Hub, se genera una cadena de conexión para un dispositivo concreto.

  1. En Azure Portal, inicie Device Update for IoT Hub.

  2. Cree un dispositivo.

  3. En el panel izquierdo, vaya a Dispositivos. A continuación, seleccione Nuevo.

  4. En Id. de dispositivo, escriba un nombre para el dispositivo. Asegúrese de que la casilla Generación automática de claves esté activada.

  5. Seleccione Guardar.

  6. Volverá a la página Dispositivos y el dispositivo que ha creado debería estar en la lista. Seleccione ese dispositivo.

  7. En la vista de dispositivos, seleccione el icono Copiar situado junto a Primary Connection String (Cadena de conexión principal).

  8. Pegue en algún lugar los caracteres copiados para su uso posterior en los pasos siguientes:

    Esta cadena copiada es la cadena de conexión del dispositivo.

Instalación de un agente de Device Update para probarlo como simulador

  1. Siga las instrucciones para instalar el 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. A continuación, instale los paquetes .deb de Device Update Agent.

    sudo apt-get install deviceupdate-agent deliveryoptimization-plugin-apt 
    
  3. Escriba la cadena de conexión principal del módulo (o dispositivo) del dispositivo IoT, en función de cómo se aprovisionó el dispositivo con Device Update, en el archivo de configuración mediante la ejecución del siguiente comando:

    sudo nano /etc/adu/du-config.json
    
  4. Configure el agente para que se ejecute como simulador. Ejecute el siguiente comando en el dispositivo IoT para que el agente de Device Update invoque el controlador del simulador para procesar una actualización de paquetes con APT ("microsoft/apt:1").

    sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_simulator_1.so --update-type 'microsoft/apt:1'
    

    Para registrar e invocar el controlador del simulador, use el formato siguiente, rellenando los marcadores de posición:

    sudo /usr/bin/AducIotAgent --register--content-handler <full path to the handler file> --update-type <update type name>

  5. Necesitará el archivo sample-du-simulator-data.json del descargado Tutorial_Simulator.zip en los requisitos previos.

    Abra el archivo sample-du-simulator-data.json y copie el contenido en el Portapapeles:

    nano sample-du-simulator-data.json
    

    Seleccione el contenido del archivo y presione Ctrl+C. Presione Ctrl+X para cerrar el archivo y no guardar los cambios.

    Ejecute el siguiente comando para crear y editar el archivo du-simulator-data.json en la carpeta tmp:

    sudo nano /tmp/du-simulator-data.json
    

    Presione Ctrl+V para pegar el contenido en el editor. Seleccione Ctrl+X para guardar los cambios y, a continuación, Y.

    Cambie los permisos:

    sudo chown adu:adu /tmp/du-simulator-data.json
    sudo chmod 664 /tmp/du-simulator-data.json
    

    Si /tmp no existe:

     sudo mkdir/tmp
     sudo chown root:root/tmp
     sudo chmod 1777/tmp
    
  6. Reinicie el agente de Device Update con el comando siguiente.

     sudo systemctl restart adu-agent
    

El software de Device Update para Azure IoT Hub está sujeto a los siguientes términos de licencia:

Lea los términos de licencia antes de usar el agente. La instalación y el uso constituyen la aceptación de estos términos. Si no está de acuerdo con los términos de licencia, no use el agente de Device Update for IoT Hub.

Nota:

Después de realizar las pruebas con el simulador, ejecute el siguiente comando para invocar el controlador APT e implementar las actualizaciones de paquetes de forma inalámbrica:

# sudo /usr/bin/AducIotAgent --register-content-handler /var/lib/adu/extensions/sources/libmicrosoft_apt_1.so --update-type 'microsoft/a pt:1'

Adición de una etiqueta al dispositivo

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

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

Importación de la actualización

  1. Necesitará los archivos TutorialImportManifest_Sim.importmanifest.json y adu-update-image-raspberrypi3.swu del descargado Tutorial_Simulator.zip en los requisitos previos. El archivo de actualización se reutiliza del tutorial de Raspberry Pi. Dado que la actualización de este tutorial está simulada, el contenido específico del archivo no importa.

  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 usará 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 las cuentas de almacenamiento y los contenedores.

  6. En el contenedor, seleccione Cargar y vaya hasta los archivos que descargó en el paso 1. Cuando haya seleccionado 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 Importar actualizació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.

Obtenga más información sobre cómo importar actualizaciones.

Creación de un grupo de actualización

  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. Seleccione Nuevo grupo para crear un grupo.

    Captura de pantalla que muestra la adición de grupos de dispositivos.

  3. Seleccione una etiqueta de IoT Hub y una clase de dispositivo en la lista. A continuación, seleccione Crear grupo.

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

  4. Después de creado el grupo, se actualizará la lista de grupos y gráficos de cumplimiento de las 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.

  5. Debería ver el grupo recién creado y todas 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.

Obtenga más información sobre cómo agregar etiquetas y crear grupos de actualizaciones.

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. Un vínculo a la actualización debe estar en Mejor actualización. Puede que tenga que actualizar una vez. Más información sobre el cumplimiento de actualizaciones.

  2. Para elegir el grupo de destino, seleccione el nombre del grupo. Se le dirigirá a Detalles del grupo en 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.

    Captura de pantalla que muestra Crear 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 que la implementación está 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 Actualización correcta.

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 Detalles junto a la implementación que ha creado.

    Captura de pantalla que muestra Detalles de implementación.

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

Ya ha completado una actualización basada en imágenes de un extremo a otro, para lo que ha usado Device Update for IoT Hub mediante el agente de referencia del simulador Ubuntu 18.04 (x64).

Limpieza de recursos

Cuando ya no los necesite, limpie la cuenta de Device Update, la instancia, IoT Hub y el dispositivo IoT.

Pasos siguientes