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
Clone el repositorio Jumpstart de Azure Arc.
git clone https://github.com/microsoft/azure_arc.git
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
Suscripción de Azure: si no tiene una suscripción de Azure, puede crear una cuenta de Azure gratuita.
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.
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.
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
.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:
Establecer las variables de entorno locales del sistema operativo.
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.
Deshabilitar el Administrador del servidor de Windows y evitar que se ejecute al iniciar.
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.
Antes de implementar la plantilla de ARM, inicie sesión en Azure mediante la CLI de Azure con el comando
az login
.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.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
Una vez aprovisionados los recursos de Azure, aparecen en Azure Portal.
Inicio de sesión de Windows y fase posterior a la implementación
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.
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.
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.
Una vez que termine correctamente, se agregará un nuevo servidor habilitado para Azure Arc al grupo de recursos.
Limpieza
Para eliminar toda la implementación, elimine el grupo de recursos de Azure Portal.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de