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

  1. Clone el repositorio Jumpstart de Azure Arc.Clone the Azure Arc Jumpstart repository.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. 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
    
  3. Instale Terraform (versión 0.12).Install Terraform >= 0.12

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

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

  1. 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 the az account list command.

  2. 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.Edit scripts/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 ID
    • TF_VAR_client_id: nombre de la entidad de servicio de AzureTF_VAR_client_id = Your Azure service principal name
    • TF_VAR_client_secret: contraseña de la entidad de servicio de AzureTF_VAR_client_secret = Your Azure service principal password
    • TF_VAR_tenant_id: identificador de inquilino de AzureTF_VAR_tenant_id = Your Azure tenant ID
    • TF_VAR_resourceGroup: nombre del grupo de recursos de AzureTF_VAR_resourceGroup = Azure resource group name
    • TF_VAR_location: región de AzureTF_VAR_location = Azure Region
    • TF_VAR_vsphere_user: nombre de usuario administrador de vCenterTF_VAR_vsphere_user = vCenter Admin Username
    • TF_VAR_vsphere_password: contraseña del administrador de vCenterTF_VAR_vsphere_password = vCenter Admin Password
    • TF_VAR_vsphere_server: nombre de dominio completo o dirección IP del servidor de vCenterTF_VAR_vsphere_server = vCenter server FQDN/IP
    • TF_VAR_admin_user: nombre de usuario administrador del sistema operativoTF_VAR_admin_user = OS Admin Username
    • TF_VAR_admin_password: la contraseña del administrador del sistema operativoTF_VAR_admin_password = OS Admin Password
  3. En la CLI, vaya al directorio azure_arc_servers_jumpstart/vmware/winsrv/terraform del repositorio clonado.From CLI, navigate to the azure_arc_servers_jumpstart/vmware/winsrv/terraform directory of the cloned repo.

  4. 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 running scripts/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
    
  5. Además de las variables de entorno de TF_VAR que acaba de exportar, edite las variables de Terraform de terraform.tfvars para adaptarlas a su entorno de VMware vSphere.In addition to the TF_VAR environment variables you've just exported, edit the Terraform variables in the terraform.tfvars to match your VMware vSphere environment.

    Captura de pantalla de las variables de entorno de TF_VAR

  6. Ejecute el comando terraform init, que descargará los proveedores de AzureRM, local y vSphere de Terraform.Run the terraform init command which will download the Terraform AzureRM, local and vSphere providers.

    Captura de pantalla del comando "terraform init".

  7. Ejecute el comando terraform apply --auto-approve y espere a que finalice el plan.Run the terraform 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.

    Captura de pantalla del comando "terraform apply" finalizado.

    Captura de pantalla de una nueva máquina virtual Windows Server de VMware vSphere.

    Captura de pantalla de un servidor habilitado para Azure Arc en un grupo de recursos de Azure.

    Otra captura de pantalla de un servidor habilitado para Azure Arc en un grupo de recursos de Azure.

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.

    Captura de pantalla de un servidor habilitado para Azure Arc que se va a eliminar.

  • 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 delete install_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 the terraform destroy --auto-approve command as shown below.

    Captura de pantalla del comando "terraform destroy".