Share via


Ejecución de Azure IoT Edge en máquinas virtuales Ubuntu

Se aplica a:Marca de verificación de IoT Edge 1.5 IoT Edge 1.5 marca de verificación de IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS son versiones compatibles. IoT Edge 1.4 LTS finaliza su ciclo de vida el 12 de noviembre de 2024. Si está usando una versión anterior, consulte Actualización de IoT Edge.

El entorno de ejecución de Azure IoT Edge es lo que convierte a un dispositivo en un dispositivo IoT Edge. El entorno de ejecución se puede implementar en dispositivos tan pequeños como un Raspberry Pi o tan grandes como un servidor industrial. Cuando un dispositivo esté configurado con el entorno de ejecución de IoT Edge, podemos empezar a implementar lógica de negocios en él desde la nube.

Para más información acerca de cómo funciona el entorno de ejecución de IoT Edge y los componentes que se incluyen, consulte Información del entorno de ejecución de Azure IoT Edge y su arquitectura.

En este artículo se indica cómo implementar una máquina virtual de Ubuntu 20.04 LTS con el tiempo de ejecución de Azure IoT Edge instalado y configurado usando una cadena de conexión de dispositivo suministrada previamente. La implementación se efectúa a través de una plantilla de Azure Resource Manager basada en cloud-init que se conserva en el repositorio iotedge-vm-deploy del proyecto.

En el primer arranque, la máquina virtual instala la versión más reciente del entorno de ejecución de Azure IoT Edge vía cloud-init. También establece una cadena de conexión proporcionada antes de que se inicie el tiempo de ejecución, lo que permite configurar y conectar fácilmente el dispositivo IoT Edge sin necesidad de iniciar una sesión de SSH o de escritorio remoto.

Implementación con el botón Implementar en Azure

Con el botón Implementar en Azure se puede realizar una implementación simplificada de las plantillas de Azure Resource Manager que se conservan en GitHub. En esta sección se explica el uso del botón Implementar en Azure incluido en el repositorio del proyecto iotedge-vm-deploy.

  1. Implementaremos una máquina virtual Linux habilitada para Azure IoT Edge usando la plantilla iotedge-vm-deploy de Azure Resource Manager. Para empezar, seleccione el botón siguiente:

    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 en que se muestra la plantilla iotedge-VM-deploy

    Campo Descripción
    Suscripción suscripción de Azure activa en la que se va a implementar la máquina virtual.
    Grupos de recursos grupo de recursos existente o recién creado que va a contener la máquina virtual y sus recursos asociados.
    Regió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.
    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 del 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 sistema operativo Ubuntu versión del sistema operativo Ubuntu que se va a instalar en la máquina virtual base.
    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, seleccione el botón de la parte inferior para ir a Next : Review + create, donde puede revisar los términos, y seleccione en Crear para comenzar la implementación.

  3. Compruebe que la implementación se haya completado correctamente. Se implementa un recurso de máquina virtual en el grupo de recursos seleccionado. Tome nota del nombre del equipo, que debe tener el formato vm-0000000000000. Tome nota también del nombre DNS asociado, que debe tener el formato <dnsLabelPrefix>.<location>. cloudapp.azure.com.

    El nombre DNS puede obtenerse en la sección Introducción de la máquina virtual recién implementada en Azure Portal.

    Captura de pantalla con el nombre DNS de la máquina virtual iotedge

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

Implementación desde la CLI de Azure

  1. Asegúrese de instalar la extensión IoT de la CLI de Azure así:

    az extension add --name azure-iot
    
  2. Si está usando la CLI de Azure en su escritorio, empiece iniciando sesión:

    az login
    
  3. Si tiene varias suscripciones, seleccione la que quiera usar:

    1. Muestre las suscripciones:

      az account list --output table
      
    2. Copie el campo SubscriptionID de la suscripción que quiera usar.

    3. Establezca la suscripción de trabajo con el identificador que ha copiado:

      az account set -s <SubscriptionId>
      
  4. Cree un grupo de recursos nuevo (o especifique uno que ya exista en los pasos siguientes):

    az group create --name IoTEdgeResources --location westus2
    
  5. Creación de una máquina virtual:

    Para usar un authenticationType de tipo password, vea el siguiente ejemplo:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    Para autenticarse con una clave SSH, puede hacerlo especificando un authenticationType de tipo sshPublicKey y, tras ello, proporcionando el valor de la clave SSH en el parámetro adminPasswordOrKey. Observe el ejemplo siguiente:

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. Compruebe que la implementación se haya completado correctamente. Se debe implementar un recurso de máquina virtual en el grupo de recursos seleccionado. Tome nota del nombre del equipo, que debe tener el formato vm-0000000000000. Tome nota también del nombre DNS asociado, que debe tener el formato <dnsLabelPrefix>.<location>. cloudapp.azure.com.

    El Nombre DNS se puede obtener de la salida con formato JSON del paso anterior, en la sección outputs de la entrada public SSH. El valor de esta entrada se puede usar para conectarse a través de SSH en el equipo recién implementado.

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    El Nombre DNS también 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

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

Pasos siguientes

Ahora que tiene un dispositivo IoT Edge aprovisionado con el entorno de ejecución instalado, puede implementar módulos de IoT Edge.

Si tiene problemas con la instalación correcta del entorno de ejecución de Azure IoT Edge, consulte la página de solución de problemas.

Para actualizar una instalación existente a la versión más reciente de IoT Edge, vea Actualice el archivo de configuración del demonio de seguridad y el entorno de ejecución de IoT Edge.

Si quiere abrir los puertos para acceder a la máquina virtual a través de SSH u otras conexiones entrantes, vea la documentación de Azure Virtual Machines sobre cómo abrir puertos y puntos de conexión en una máquina virtual Linux.