Uso de un plan de Terraform para implementar una máquina virtual de VMware para Windows y conectarla a Azure ArcUse a Terraform plan to deploy a VMware Windows virtual machine and connect it to Azure Arc
En este artículo se indican instrucciones para usar el plan de Terraform proporcionado para implementar una máquina virtual Windows Server en VMware vSphere y conectarla como un recurso de servidor habilitado para Azure Arc.This article provides guidance for using the provided Terraform plan to deploy a Windows Server, VMware vSphere virtual machine and connect it as an Azure Arc enabled server resource.
Requisitos previosPrerequisites
Clone el repositorio Jumpstart de Azure Arc.Clone the Azure Arc Jumpstart repository.
git clone https://github.com/microsoft/azure_arc.git
Instale o actualice la CLI de Azure a la versión 2.7 y posterior.Install or update Azure CLI to version 2.7 and above. Use el siguiente comando para comprobar la versión que está instalada.Use the following command to check your current installed version.
az --version
Un usuario de VMware vCenter Server con permisos para implementar una máquina virtual desde una plantilla en el cliente web de vSphere.A VMware vCenter Server user with permissions to deploy a virtual machine from a template in the vSphere web client.
Cree una entidad de servicio de Azure.Create an Azure service principal.
Para conectar la máquina virtual de VMware vSphere a Azure Arc, se necesita una entidad de servicio de Azure a la que se le haya asignado el rol de colaborador.To connect the VMware vSphere virtual machine to Azure Arc, an Azure service principal assigned with the Contributor role is required. Inicie sesión en su cuenta de Azure y luego ejecute el comando siguiente para crearla.To create it, sign in to your Azure account and run the following command. También puede ejecutar este comando en Azure Cloud Shell.You can also run this command in Azure Cloud Shell.
az login az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor
Por ejemplo:For example:
az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor
La salida debe ser similar a la que se muestra a continuación:Output should look like this:
{ "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "displayName": "AzureArcServers", "name": "http://AzureArcServers", "password": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX", "tenant": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX" }
Nota
Se recomienda que el ámbito de la entidad de servicio se establezca en una suscripción y un grupo de recursos específicos de Azure.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.
Preparación de una plantilla de máquina virtual de VMware vSphere para Windows ServerPrepare a Windows Server VMware vSphere VM template
Antes de usar esta guía para implementar una máquina virtual Windows Server y conectarla a Azure Arc, se requiere una plantilla de VMware vSphere.Before using this guidance to deploy a Windows Server VM and connect it to Azure Arc, a VMware vSphere template is required. Puede crear fácilmente una plantilla de este tipo con VMware vSphere 6.5 y versiones posteriores.You can easily create such a template using VMware vSphere 6.5 and above.
El plan de Terraform usó el remote-exec
aprovisionador que usa el protocolo WinRM para copiar y ejecutar el script de Azure Arc necesario. Para permitir la conectividad de WinRM con la máquina virtual, ejecute el allow_winrm
script de PowerShell en la máquina virtual antes de convertirla en plantilla.The Terraform plan used the remote-exec
provisioner which uses the WinRM protocol to copy and execute the required Azure Arc script. To allow WinRM connectivity to the VM, run the allow_winrm
PowerShell script on your VM before converting it to template.
Nota
Se recomienda seguir usando la guía como referencia aunque ya se tenga una plantilla de máquina virtual para un servidor Windows.If you already have a Windows Server VM template it is still recommended to use the guide as a reference.
ImplementaciónDeployment
Antes de ejecutar el plan de Terraform, debe establecer las variables de entorno que se usarán en él.Before executing the Terraform plan, you must set the environment variables which will be used by the plan. Estas variables se basan en la entidad de servicio de Azure que acaba de crear, en su suscripción e inquilino de Azure, y en las credenciales de VMware vSphere.These variables are based on the Azure service principal you've just created, your Azure subscription and tenant, and your VMware vSphere credentials.
Recupere el identificador del inquilino y el identificador de la suscripción de Azure mediante el comando
az account list
.Retrieve your Azure subscription ID and tenant ID using theaz account list
command.El plan de Terraform crea recursos tanto en Microsoft Azure como en VMware vSphere.The Terraform plan creates resources in both Microsoft Azure and VMware vSphere. Después, ejecuta un script en la máquina virtual para instalar el agente de Azure Arc y todos los artefactos necesarios.It then executes a script on the virtual machine to install the Azure Arc agent and all necessary artifacts. Este script requiere determinada información sobre los entornos de VMware vSphere y Azure.This script requires certain information about your VMware vSphere and Azure environments. Edite
scripts/vars.sh
y actualice cada una de las variables con los valores adecuados.Editscripts/vars.sh
and update each of the variables with the appropriate values.TF_VAR_subscription_id
: identificador de la suscripción de AzureTF_VAR_subscription_id
= Your Azure subscription IDTF_VAR_client_id
: nombre de la entidad de servicio de AzureTF_VAR_client_id
= Your Azure service principal nameTF_VAR_client_secret
: contraseña de la entidad de servicio de AzureTF_VAR_client_secret
= Your Azure service principal passwordTF_VAR_tenant_id
: identificador de inquilino de AzureTF_VAR_tenant_id
= Your Azure tenant IDTF_VAR_resourceGroup
: nombre del grupo de recursos de AzureTF_VAR_resourceGroup
= Azure resource group nameTF_VAR_location
: región de AzureTF_VAR_location
= Azure RegionTF_VAR_vsphere_user
: nombre de usuario administrador de vCenterTF_VAR_vsphere_user
= vCenter Admin UsernameTF_VAR_vsphere_password
: contraseña del administrador de vCenterTF_VAR_vsphere_password
= vCenter Admin PasswordTF_VAR_vsphere_server
: nombre de dominio completo o dirección IP del servidor de vCenterTF_VAR_vsphere_server
= vCenter server FQDN/IPTF_VAR_admin_user
: nombre de usuario administrador del sistema operativoTF_VAR_admin_user
= OS Admin UsernameTF_VAR_admin_password
: la contraseña del administrador del sistema operativoTF_VAR_admin_password
= OS Admin Password
En la CLI, vaya al directorio
azure_arc_servers_jumpstart/vmware/winsrv/terraform
del repositorio clonado.From CLI, navigate to theazure_arc_servers_jumpstart/vmware/winsrv/terraform
directory of the cloned repo.Exporte las variables de entorno que ha editado ejecutando
scripts/vars.sh
con el comando source, como se muestra a continuación.Export the environment variables you edited by runningscripts/vars.sh
with the source command as shown below. Terraform requiere que se establezcan para que el plan se ejecute correctamente.Terraform requires these to be set for the plan to execute properly. Tenga en cuenta que este script también se ejecutará automáticamente de forma remota en la máquina virtual como parte de la implementación de Terraform.Note that this script will also be automatically executed remotely on the virtual machine as part of the Terraform deployment.source ./scripts/vars.sh
Además de las variables de entorno de
TF_VAR
que acaba de exportar, edite las variables de Terraform deterraform.tfvars
para adaptarlas a su entorno de VMware vSphere.In addition to theTF_VAR
environment variables you've just exported, edit the Terraform variables in theterraform.tfvars
to match your VMware vSphere environment.Ejecute el comando
terraform init
, que descargará los proveedores de AzureRM, local y vSphere de Terraform.Run theterraform init
command which will download the Terraform AzureRM, local and vSphere providers.Ejecute el comando
terraform apply --auto-approve
y espere a que finalice el plan.Run theterraform apply --auto-approve
command and wait for the plan to finish. Una vez completada la implementación de Terraform, habrá una nueva máquina virtual Windows Server en funcionamiento que se proyectará como un recurso de servidor habilitado para Azure Arc en un grupo de recursos de Azure recién creado.Once the Terraform deployment is completed, a new Windows Server VM will be up and running and will be projected as an Azure Arc server resource in a newly created Azure resource group.
Eliminar la implementaciónDelete the deployment
La manera más sencilla de eliminar la implementación consiste en eliminar el recurso de Azure Arc mediante Azure Portal; simplemente seleccione el recurso y elimínelo.The most straightforward way is to delete the Azure Arc resource via the Azure portal, just select the resource and delete it. Además, elimine la máquina virtual VMware vSphere.In addition, delete the VMware vSphere VM.
Si elimina la instancia manualmente, también debe eliminar
install_arc_agent.ps1
, que crea el plan de Terraform.If you delete the instance manually, then you should also deleteinstall_arc_agent.ps1
, which is created by the Terraform plan.Si desea desmontar todo el entorno, use el comando
terraform destroy --auto-approve
como se muestra a continuación.If you want to tear down the entire environment, use theterraform destroy --auto-approve
command as shown below.