Compartir por


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

Aplica a:icono de aprobación IoT Edge 1.1

Importante

La fecha de finalización del soporte técnico de IoT Edge 1.1 fue el 13 de diciembre de 2022. Compruebe el ciclo de vida del producto de Microsoft para obtener información sobre cómo se admite este producto, servicio, tecnología o API. Para más información sobre cómo actualizar a la versión más reciente de IoT Edge, 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 sobre cómo funciona el entorno de ejecución de IoT Edge y qué componentes se incluyen, consulte Descripción del entorno de ejecución de Azure IoT Edge y su arquitectura.

En este artículo se enumeran los pasos para implementar una máquina virtual Ubuntu 18.04 LTS con el entorno de ejecución de Azure IoT Edge instalado y configurado mediante una cadena de conexión de dispositivo proporcionada 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 mediante 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 muestra el uso del botón Implementar en Azure incluido en el repositorio de proyectos iotedge-vm-deploy .

  1. Implementaremos una máquina virtual Linux habilitada para Azure IoT Edge mediante la plantilla iotedge-vm-deploy de Azure Resource Manager. Para comenzar, haga clic en el botón siguiente:

    Botón para desplegar en Azure para 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 La suscripción de Azure activa en la que se 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 va a 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 tu elección que se usa como prefijo del nombre de host de la máquina virtual.
    Nombre de usuario de administrador Un nombre de usuario, al que se proporcionará privilegios de root 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 máquina virtual 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 contraseña en función de 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.

    Cuando se hayan rellenado todos los campos, haga clic en el botón situado en la parte inferior para desplazarse a Next : Review + create donde puede revisar los términos y haga clic en Crear para comenzar la implementación.

  3. Compruebe que la implementación se ha completado correctamente. Se debe haber implementado 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. Además, tome nota del 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.

  4. Si quiere usar SSH en esta 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 que ha instalado la extensión iot de la CLI de Azure con:

    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 su suscripción de trabajo utilizando el ID 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 password, consulte el ejemplo siguiente:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --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 adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    Para autenticarse con una clave SSH, puede hacerlo especificando un authenticationType de sshPublicKeyy, a continuación, proporcione el valor de la clave SSH en el parámetro adminPasswordOrKey . A continuación se muestra un ejemplo.

    #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/1.1/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 ha completado correctamente. Se debe haber implementado 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. Además, tome nota 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, dentro de la sección de salidas como parte de la entrada SSH pública . El valor de esta entrada se puede usar para acceder mediante SSH al equipo recién desplegado.

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

  7. Si quiere usar SSH en esta 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 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, consulte Actualizar el demonio de seguridad y el entorno de ejecución de IoT Edge.

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