Share via


Uso de una plantilla de Azure Resource Manager para implementar y conectar una máquina virtual Ubuntu en Azure Arc

Este artículo es una guía sobre el uso de una plantilla de Azure Resource Manager plantilla de ARM para incorporar automáticamente una máquina virtual Ubuntu a Azure Arc. La plantilla de ARM proporcionada es responsable de la creación de los recursos de Azure y la ejecución del script de incorporación de Azure Arc en la máquina virtual.

Las máquinas virtuales de Azure usan Azure Instance Metadata Service (IMDS) de manera predeterminada. Al proyectar una máquina virtual de Azure como servidor habilitado para Azure Arc, se crea un conflicto que no permite que los recursos del servidor de Azure Arc se representen como uno cuando se usa IMDS. Por el contrario, el servidor de Azure Arc sigue "actuando" como máquina virtual nativa de Azure.

Esta guía le va a permitir usar e incorporar máquinas virtuales de Azure en Azure Arc solo con fines de demo. Va a tener la posibilidad de simular un servidor implementado fuera de Azure, por ejemplo, en el entorno local o en otras plataformas en la nube.

Nota

No se espera que una máquina virtual de Azure se proyecte como servidor habilitado para Azure Arc. El siguiente escenario no se admite y solo se debe usar para fines de demostración y pruebas.

Prerrequisitos

  1. Clone el repositorio Jumpstart de Azure Arc.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Instale o actualice la CLI de Azure a la versión 2.7 y superior. Use el siguiente comando para comprobar la versión instalada actual.

    az --version
    
  3. Suscripción de Azure: si no tiene una suscripción de Azure, puede crear una cuenta gratuita de Azure.

  4. Cree una entidad de servicio de Azure.

    Para implementar los recursos de Azure mediante la plantilla de ARM se requiere una entidad de servicio de Azure con el rol Colaborador. Para su creación, inicie sesión en la cuenta de Azure y ejecute el siguiente comando. También puede ejecutar este comando en Azure Cloud Shell.

    az login
    az account set -s <Your Subscription ID>
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor --scopes "/subscriptions/<Your Subscription ID>"
    

    Por ejemplo:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    El resultado debe ser similar al siguiente:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcServers",
      "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    }
    

    Nota:

    Se recomienda encarecidamente que el ámbito de la entidad de servicio se establezca en un grupo de recursos y una suscripción de Azure específicos.

Flujo de automatización

A continuación se ofrece una explicación que va a permitirle familiarizarse con el flujo de automatización e implementación.

  1. Un usuario edita el archivo de parámetros de la plantilla de ARM (edición única). Estos valores de parámetro se usan a lo largo de toda la implementación.

  2. La plantilla de ARM incluye una extensión de script personalizado de máquina virtual de Azure que va a implementar el script de shell install_arc_agent.sh.

  3. Con el fin de permitir que la máquina virtual de Azure se proyecte correctamente como un servidor habilitado para Azure Arc, el script hace lo siguiente:

    1. Establecer las variables de entorno locales del sistema operativo.

    2. Generar un archivo ~/.bash_profile que se inicializa en el primer inicio de sesión del usuario para configurar el entorno. Este script le permitirá hacer lo siguiente:

      • Detener y deshabilitar el servicio del agente invitado de Azure para Linux.

      • Crear una nueva regla de firewall de SO para bloquear el tráfico de salida de Azure IMDS a la dirección remota 169.254.169.254.

      • Instalar el agente de la máquina conectada a Azure Arc.

      • Quitar el archivo ~/.bash_profile para que no se ejecute después del primer inicio de sesión.

  4. Un usuario aplica SSH a la máquina virtual Linux, que inicia la ejecución del script ~/.bash_profile e incorpora la máquina virtual a Azure Arc.

    Nota

    El script de shell install_arc_agent.sh habilita el firewall del sistema operativo y configura nuevas reglas para las conexiones entrantes y salientes. De manera predeterminada, se permite todo el tráfico entrante y saliente, excepto el bloqueo del tráfico de salida de Azure IMDS a la dirección remota 169.254.169.254.

Implementación

Como se ha mencionado, esta implementación va a usar plantillas de ARM. Va a implementar una sola plantilla, responsable de la creación de todos los recursos de Azure en un único grupo de recursos y de la incorporación de la máquina virtual creada a Azure Arc.

  1. Antes de implementar la plantilla de ARM, inicie sesión mediante la CLI de Azure con el comando az login.

  2. La implementación usa el archivo de parámetros de la plantilla de ARM. Antes de iniciar la implementación, edite el archivo azuredeploy.parameters.json que se encuentra en la carpeta local del repositorio clonado. Aquí va a encontrar un archivo de parámetros de ejemplo.

  3. Para implementar la plantilla de ARM, vaya a la carpeta de implementación clonada local y ejecute el siguiente comando:

    az group create --name <Name of the Azure resource group> --location <Azure region> --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group <Name of the Azure resource group> \
    --name <The name of this deployment> \
    --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \
    --parameters <The `azuredeploy.parameters.json` parameters file location>
    

    Nota

    Asegúrese de usar el mismo nombre de grupo de recursos de Azure que el del archivo azuredeploy.parameters.json.

    Por ejemplo:

    az group create --name Arc-Servers-Linux-Demo --location "westeurope" --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group Arc-Servers-Linux-Demo \
    --name arclinuxdemo \
    --template-uri https://raw.githubusercontent.com/microsoft/azure_arc/main/azure_arc_servers_jumpstart/azure/linux/arm_template/azuredeploy.json \
    --parameters azuredeploy.parameters.json
    
  4. Una vez aprovisionados los recursos de Azure, aparecen en Azure Portal.

    A screenshot of an output from an ARM template.

    A screenshot resources in the resource group.

Inicio de sesión de Linux y fase posterior a la implementación

  1. Ahora que se ha creado la máquina virtual Linux, el siguiente paso es conectarse a ella. Con su dirección IP pública, aplique SSH a la máquina virtual.

    A screenshot of an Azure VM public IP address.

  2. Después de iniciar sesión por primera vez, como se ha mencionado en la sección Flujo de automatización, se ejecuta un script de inicio de sesión. Este script se ha creado como parte del proceso de implementación automatizado.

  3. Deje que se ejecute el script y no cierre la sesión de SSH. La sesión se cierra automáticamente cuando termina.

    A screenshot of one type of script output.

    A screenshot of another type of script output.

    A screenshot of a third type of script output.

  4. Una vez que termine correctamente, se agregará un nuevo servidor habilitado para Azure Arc al grupo de recursos.

    A screenshot of a resource group from an Azure Arc-enabled server.

    A screenshot of details from an Azure Arc-enabled server.

Limpieza

Para eliminar toda la implementación, elimine el grupo de recursos de Azure Portal.

A screenshot of how to delete resource group