Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: IoT Edge 1.1
Importante
IoT Edge 1.1 fecha de finalización del soporte técnico fue el 13 de diciembre de 2022. Consulte la página del ciclo de vida de productos de Microsoft para obtener información sobre cómo se admite este producto, servicio, tecnología o API. Para obtener más información sobre cómo actualizar a la versión más reciente de IoT Edge, consulte Update IoT Edge.
En este artículo se proporcionan instrucciones de un extremo a otro para el aprovisionamiento automático de uno o varios dispositivos Linux IoT Edge mediante claves simétricas. Puede aprovisionar automáticamente los dispositivos Azure IoT Edge con Azure IoT Hub Device Provisioning Service (DPS). Si no está familiarizado con el proceso de aprovisionamiento automático, revise la información general sobre el aprovisionamiento antes de continuar.
Las tareas son las siguientes:
- Crear una inscripción individual para un dispositivo o una inscripción de grupo para un conjunto de dispositivos.
- Instale el entorno de ejecución de IoT Edge y conéctese a IoT Hub.
La atestación de clave simétrica es un enfoque sencillo para autenticar un dispositivo con una instancia de Device Provisioning Service. Este método de atestación representa una experiencia de "Hola mundo" para los desarrolladores que no estén familiarizados con el aprovisionamiento de dispositivos, o no tengan estrictos requisitos de seguridad. La atestación de dispositivo mediante un TPM o certificado X.509 es más segura y se debe usar cuando los requisitos de seguridad son más estrictos.
Prerrequisitos
Recursos en la nube
- Un centro de IoT activo.
- Una instancia del servicio de aprovisionamiento de dispositivos de IoT Hub en Azure, vinculada a tu IoT Hub.
- Si no tiene una instancia del Servicio de Aprovisionamiento de Dispositivos, puede seguir las instrucciones en las secciones Crear una nueva instancia del Servicio de Aprovisionamiento de Dispositivos de IoT Hub y Vincular el hub de IoT y su servicio de aprovisionamiento de dispositivos en el inicio rápido del Servicio de Aprovisionamiento de Dispositivos de IoT Hub.
- Cuando tenga el servicio de aprovisionamiento de dispositivos en ejecución, copie el valor de ID de ámbito de la página de resumen. Use este valor cuando configure el entorno de ejecución de IoT Edge.
Requisitos del dispositivo
Un dispositivo Linux físico o virtual para que sea el dispositivo IoT Edge.
Se debe definir un identificador de registroúnico para identificar cada dispositivo. Puede usar la dirección MAC, el número de serie o cualquier otra información única del dispositivo. Por ejemplo, podría usar una combinación de una dirección MAC y un número de serie que formen la siguiente cadena de un identificador de registro: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
. Los caracteres válidos son letras alfanuméricas en minúsculas y guiones (-
).
Crear un registro de DPS
Cree una inscripción para aprovisionar uno o varios dispositivos mediante DPS.
Si desea aprovisionar un único dispositivo IoT Edge, cree una inscripción individual. Si necesita aprovisionar varios dispositivos, siga los pasos para crear una inscripción de grupo de DPS.
Al crear una inscripción en DPS, tiene la oportunidad de declarar un estado inicial de dispositivo gemelo. En el dispositivo gemelo, puede establecer etiquetas para agrupar dispositivos por cualquier métrica que necesite en su solución, como la región, el entorno, la ubicación o el tipo de dispositivo. Estas etiquetas se usan para crear implementaciones automáticas.
Para más información sobre las inscripciones en Device Provisioning Service, vea Administración de inscripciones de dispositivos.
Crear una inscripción individual de DPS
Sugerencia
Los pasos de este artículo son para Azure Portal, pero también puede crear inscripciones individuales mediante la CLI de Azure. Para obtener más información, consulte az iot dps enrollment. Como parte del comando de la CLI, use la marca edge-enabled para especificar que la inscripción es para un dispositivo de IoT Edge.
En el portal de Azure, navegue a su instancia del servicio de aprovisionamiento de dispositivos IoT Hub.
En Configuración, seleccione Administrar inscripciones.
Seleccione Add individual enrollment (Agregar inscripción individual) y, a continuación, complete los pasos siguientes para configurar la inscripción:
En Mecanismo, seleccione Clave simétrica.
Proporcione un Id. de registro único para el dispositivo.
De manera opcional, proporcione un Id. de dispositivo IoT Hub para el dispositivo. Puede usar identificadores de dispositivo para orientar un dispositivo específico para la implementación de módulos. Si no proporciona un id. de dispositivo, se usará el id. de registro.
Seleccione Verdadero para declarar que la inscripción es para un dispositivo IoT Edge.
De manera opcional, agregue un valor de etiqueta a Estado inicial de dispositivo gemelo. Puede usar etiquetas para los grupos de dispositivos de destino para la implementación del módulo. Por ejemplo:
{ "tags": { "environment": "test" }, "properties": { "desired": {} } }
Selecciona Guardar.
Copie el valor de Clave principal de la inscripción individual para usarlo al instalar el entorno de ejecución de Azure IoT Edge.
Ahora que existe una inscripción para este dispositivo, el entorno de ejecución de Azure IoT Edge puede aprovisionar automáticamente el dispositivo durante la instalación.
Instalación de IoT Edge
En esta sección, preparará la máquina virtual Linux o el dispositivo físico para IoT Edge. A continuación, instala IoT Edge.
Ejecute los comandos siguientes para agregar el repositorio de paquetes y luego agregue la clave de firma de paquetes de Microsoft a la lista de claves de confianza.
Importante
El 30 de junio de 2022 se retiró Raspberry Pi OS Stretch de la lista de soporte técnico del sistema operativo de nivel 1. Para evitar posibles vulnerabilidades de seguridad, actualice el sistema operativo del host a Bullseye.
La instalación se puede realizar con unos pocos comandos. Abra un terminal y ejecute los comandos siguientes:
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
18.04:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Nota:
Los paquetes de software de Azure IoT Edge están sujetos a los términos de licencia que se encuentran en cada paquete (usr/share/doc/{package-name}
o en el directorio LICENSE
). 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 ese paquete.
Instalación de un motor del contenedor
Azure IoT Edge se basa en un entorno de ejecución de contenedor compatible con OCI. En los escenarios de producción, se recomienda utilizar el motor de Moby. El motor moby es el único motor de contenedor compatible oficialmente con IoT Edge. Las imágenes de contenedor de Docker CE/EE son totalmente compatibles con el entorno de ejecución de Moby.
Instale el motor de Moby.
sudo apt-get update; \
sudo apt-get install moby-engine
Una vez instalado correctamente el motor de Moby, configúrelo para usar local
controlador de registro como mecanismo de registro. Para más información sobre la configuración de registro, consulte Lista de comprobación de implementación de producción.
Cree o abra el archivo de configuración del demonio de Docker en
/etc/docker/daemon.json
.Establezca el controlador de registro predeterminado en el controlador de registro de
local
como se muestra en el ejemplo siguiente.{ "log-driver": "local" }
Reinicie el motor de contenedores para que se apliquen los cambios.
sudo systemctl restart docker
Sugerencia
Si se producen errores al instalar el motor del contenedor Moby, compruebe la compatibilidad con Moby del kernel de Linux. Algunos fabricantes de dispositivos incrustados distribuyen imágenes de dispositivos que contienen kernels de Linux personalizados sin las características necesarias para la compatibilidad del motor del contenedor. Ejecute el siguiente comando, que usa el script check-config suministrado por Moby, para comprobar la configuración del kernel:
curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh chmod +x check-config.sh ./check-config.sh
En la salida del script, compruebe que todos los elementos que figuran en
Generally Necessary
yNetwork Drivers
estén habilitados. Si faltan características, puede habilitarlas si vuelve a generar el kernel a partir del origen y selecciona los módulos asociados para incluirlos en el archivo .config de kernel adecuado. Igualmente, si usa un generador de configuración de kernel comodefconfig
omenuconfig
, busque y habilite las características correspondientes y vuelva a generar el kernel como corresponda. Una vez que implemente el kernel recién modificado, vuelva a ejecutar el script check-config para comprobar que se han habilitado correctamente todas las características necesarias.
Instalación del entorno de ejecución de IoT Edge
El daemon de seguridad de IoT Edge proporciona y mantiene los estándares de seguridad en el dispositivo IoT Edge. El servicio se inicia cada vez que se arranca y configura el dispositivo iniciando el entorno de ejecución restante de IoT Edge.
Los pasos de esta sección representan el proceso típico para instalar la versión más reciente en un dispositivo que tenga conexión a Internet. Si tiene que instalar una versión específica, como una versión preliminar, o tiene que realizar la instalación mientras está sin conexión, siga los pasos de Instalación sin conexión o de una versión específica, más adelante en este artículo.
Instale la versión 1.1.* de IoT Edge junto con el paquete libiothsm-std:
sudo apt-get update; \
sudo apt-get install iotedge
Nota:
La versión 1.1 de IoT Edge es la rama de soporte a largo plazo de IoT Edge. Si ejecuta una versión anterior, se recomienda instalar o actualizar a la revisión más reciente, ya que ya no se admiten versiones anteriores.
Aprovisionamiento del dispositivo con su identidad de nube
Una vez que el entorno de ejecución esté instalado en el dispositivo, configure el dispositivo con la información que usa para conectarse a Device Provisioning Service y a IoT Hub.
Tenga lista la siguiente información:
- El valor Ámbito de Identificador del DPS
- El Id. de registro del dispositivo que ha creado
- La Clave principal de una inscripción individual o una clave derivada para dispositivos que usan una inscripción de grupo.
Abra el archivo de configuración en el dispositivo IoT Edge.
sudo nano /etc/iotedge/config.yaml
Busque la sección configuraciones de aprovisionamiento del archivo. Descomente las líneas para el aprovisionamiento de clave simétrica de DPS y asegúrese de que cualquier otra línea de aprovisionamiento esté comentada.
La
provisioning:
línea no debe tener espacio en blanco anterior, y los elementos anidados deben estar sangrados con dos espacios.# DPS TPM provisioning configuration provisioning: source: "dps" global_endpoint: "https://global.azure-devices-provisioning.net" scope_id: "PASTE_YOUR_SCOPE_ID_HERE" attestation: method: "symmetric_key" registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE" symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" # always_reprovision_on_startup: true # dynamic_reprovisioning: true
Actualice los valores de
scope_id
,registration_id
ysymmetric_key
con la información de DPS y del dispositivo.De manera opcional, use las líneas
always_reprovision_on_startup
odynamic_reprovisioning
para configurar el comportamiento de reaprovisionamiento de su dispositivo. Si un dispositivo está configurado para volver a provisionar al iniciarse, siempre intentará provisionar con DPS primero y, a continuación, recurrirá a la copia de seguridad de aprovisionamiento si se produce un error. Si un dispositivo está configurado para reaprovisionarse dinámicamente, IoT Edge (y todos los módulos) se reiniciará y se reaprovisionará si se detecta un evento de reaprovisionamiento, como cuando el dispositivo se mueve de un IoT Hub a otro. En concreto, IoT Edge comprueba los erroresbad_credential
odevice_disabled
del SDK para detectar el evento de reaprovisionamiento. Para desencadenar este evento manualmente, deshabilite el dispositivo en IoT Hub. Para más información, consulte Conceptos sobre el reaprovisionamiento de dispositivos de IoT Hub.Reinicie el entorno de ejecución de IoT Edge para que recoja todos los cambios de configuración realizados en el dispositivo.
sudo systemctl restart iotedge
Comprobación de instalación correcta
Si el entorno de ejecución se inició correctamente, puede ir a IoT Hub y empezar a implementar módulos de IoT Edge en el dispositivo.
Puede comprobar que la inscripción individual que ha creado en Device Provisioning Service se ha usado. En el portal de Azure, vaya a su instancia del servicio de aprovisionamiento de dispositivos. Abra los detalles de la inscripción para la matrícula individual que ha creado. Tenga en cuenta que el estado de la inscripción está asignado y se muestra el ID de dispositivo.
Use los siguientes comandos en el dispositivo para comprobar que la instancia de IoT Edge se haya instalado e iniciado correctamente.
Compruebe el estado del servicio IoT Edge.
systemctl status iotedge
Examine los registros del servicio.
journalctl -u iotedge --no-pager --no-full
Enumere los módulos en ejecución.
iotedge list
Pasos siguientes
El proceso de inscripción en el servicio de aprovisionamiento de dispositivos permite establecer el ID del dispositivo y las etiquetas del dispositivo gemelo al mismo tiempo que se aprovisiona el nuevo dispositivo. Puede usar esos valores para dirigirse a dispositivos individuales o grupos de dispositivos con la administración automática de dispositivos. Aprenda a implementar y supervisar los módulos de IoT Edge a escala mediante Azure Portal o la CLI de Azure.