Share via


Uso de una plantilla de Azure Resource Manager para implementar y conectar una máquina virtual de Azure 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 de Azure (VM de Azure) con Windows 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 local o en otras plataformas en la nube.

Nota:

No se espera que una máquina virtual de Azure sea un 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 de Azure gratuita.

  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 (una 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 implementa el script de PowerShell install_arc_agent.ps1.

  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 script de inicio de sesión de SO local denominado LogonScript.ps1. Este script le permitirá hacer lo siguiente:

      • Crear el archivo LogonScript.log.

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

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

      • Anular el registro de la tarea programada de Windows de script de inicio de sesión para que no se ejecute después del primer inicio de sesión.

    3. Deshabilitar el Administrador del servidor de Windows y evitar que se ejecute al iniciar.

  4. Un usuario se conecta por medio de RDP a la VM Windows, que empieza a ejecutar LogonScript.ps1, e incorpora la VM a Azure Arc.

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 en Azure 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/windows/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-Win-Demo --location "East US" --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group Arc-Servers-Win-Demo \
    --name arcwinsrvdemo \
    --template-uri https://raw.githubusercontent.com/microsoft/azure-arc/main/azure_arc_servers_jumpstart/azure/windows/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 Windows y fase posterior a la implementación

  1. Ahora que se ha creado la máquina virtual Windows Server, el siguiente paso es conectarla. Con su dirección IP pública, aplique RDP 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 crea como parte del proceso de implementación automatizado.

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

    Nota:

    El tiempo de ejecución del script es de unos 1-2 minutos.

    A screenshot of one type of script output.

    A screenshot of a second type of script output.

    A screenshot of a third type of script output.

    A screenshot of a fourth 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 the resource group.