Een terraform-abonnement gebruiken om een virtuele VMware Windows-machine te implementeren en deze te verbinden met Azure ArcUse a Terraform plan to deploy a VMware Windows virtual machine and connect it to Azure Arc

Dit artikel bevat richt lijnen voor het gebruik van het geleverde terraform -plan voor de implementatie van een Windows-server, VMware vSphere virtuele machine en verbinding maken met een Azure Arc-Server Resource.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.

VereistenPrerequisites

  1. Kloon de Azure Arc-opslag plaats.Clone the Azure Arc Jumpstart repository.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Installeer of werk Azure cli bij naar versie 2,7 en hoger.Install or update Azure CLI to version 2.7 and above. Gebruik de volgende opdracht om de huidige geïnstalleerde versie te controleren.Use the following command to check your current installed version.

    az --version
    
  3. Installeer terraform >= 0,12Install Terraform >= 0.12

  4. Een VMware vCenter Server gebruiker met machtigingen voor het implementeren van een virtuele machine op basis van een sjabloon in de vSphere-webclient.A VMware vCenter Server user with permissions to deploy a virtual machine from a template in the vSphere web client.

  5. Maak een Azure-Service-Principal.Create an Azure service principal.

    Als u de virtuele machine van VMware vSphere wilt verbinden met Azure Arc, is een Azure-service-principal die is toegewezen aan de rol Inzender vereist.To connect the VMware vSphere virtual machine to Azure Arc, an Azure service principal assigned with the Contributor role is required. Als u deze wilt maken, meldt u zich aan bij uw Azure-account en voert u de volgende opdracht uit.To create it, sign in to your Azure account and run the following command. U kunt deze opdracht ook uitvoeren in 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
    

    Bijvoorbeeld:For example:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor
    

    De uitvoer moet er als volgt uitzien:Output should look like this:

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

    Notitie

    We raden u ten zeerste aan de service-principal te beperken tot een specifiek Azure-abonnement en een specifieke resource groep.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.

Een Windows Server-VMware vSphere VM-sjabloon voorbereidenPrepare a Windows Server VMware vSphere VM template

Voordat u deze instructies gebruikt om een Windows Server-VM te implementeren en deze te verbinden met Azure Arc, is een VMware vSphere-sjabloon vereist.Before using this guidance to deploy a Windows Server VM and connect it to Azure Arc, a VMware vSphere template is required. U kunt een dergelijke sjabloon eenvoudig maken met behulp van VMware vSphere 6,5 en hoger.You can easily create such a template using VMware vSphere 6.5 and above.

Het terraform-abonnement gebruikt de remote-exec inrichtings methode die het WinRM-protocol gebruikt om het vereiste Azure-Arc-script te kopiëren en uit te voeren. Als u WinRM-verbinding met de virtuele machine wilt toestaan, voert u het allow_winrm Power shell-script uit op uw virtuele machine voordat u het converteert naar de sjabloon.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.

Notitie

Als u al een Windows Server VM-sjabloon hebt, wordt deze nog steeds aanbevolen om de hand leiding als referentie te gebruiken.If you already have a Windows Server VM template it is still recommended to use the guide as a reference.

ImplementatieDeployment

Voordat u het terraform-plan uitvoert, moet u de omgevings variabelen instellen die door het plan zullen worden gebruikt.Before executing the Terraform plan, you must set the environment variables which will be used by the plan. Deze variabelen zijn gebaseerd op de Azure-service-principal die u zojuist hebt gemaakt, uw Azure-abonnement en-Tenant en uw VMware vSphere referenties.These variables are based on the Azure service principal you've just created, your Azure subscription and tenant, and your VMware vSphere credentials.

  1. Haal uw Azure-abonnements-ID en Tenant-ID op met behulp van de az account list opdracht.Retrieve your Azure subscription ID and tenant ID using the az account list command.

  2. Het terraform-plan maakt resources in zowel Microsoft Azure als VMware vSphere.The Terraform plan creates resources in both Microsoft Azure and VMware vSphere. Vervolgens wordt een script uitgevoerd op de virtuele machine om de Azure Arc-agent en alle benodigde artefacten te installeren.It then executes a script on the virtual machine to install the Azure Arc agent and all necessary artifacts. Dit script vereist bepaalde informatie over uw VMware vSphere en Azure-omgevingen.This script requires certain information about your VMware vSphere and Azure environments. Bewerk de scripts/vars.sh variabelen en werk deze bij met de juiste waarden.Edit scripts/vars.sh and update each of the variables with the appropriate values.

    • TF_VAR_subscription_id = Uw Azure-abonnements-IDTF_VAR_subscription_id = Your Azure subscription ID
    • TF_VAR_client_id = Uw Azure Service Principal NameTF_VAR_client_id = Your Azure service principal name
    • TF_VAR_client_secret = Het wacht woord van uw Azure-Service-PrincipalTF_VAR_client_secret = Your Azure service principal password
    • TF_VAR_tenant_id = Uw Azure-Tenant-IDTF_VAR_tenant_id = Your Azure tenant ID
    • TF_VAR_resourceGroup = Naam van de Azure-resource groepTF_VAR_resourceGroup = Azure resource group name
    • TF_VAR_location = Azure-regioTF_VAR_location = Azure Region
    • TF_VAR_vsphere_user = Gebruikers naam vCenter-beheerderTF_VAR_vsphere_user = vCenter Admin Username
    • TF_VAR_vsphere_password = vCenter-beheerders wachtwoordTF_VAR_vsphere_password = vCenter Admin Password
    • TF_VAR_vsphere_server = FQDN/IP van vCenter-ServerTF_VAR_vsphere_server = vCenter server FQDN/IP
    • TF_VAR_admin_user = Gebruikers naam van besturings systeem beheerderTF_VAR_admin_user = OS Admin Username
    • TF_VAR_admin_password = Beheerders wachtwoord voor het besturings systeemTF_VAR_admin_password = OS Admin Password
  3. Ga vanuit CLI naar de azure_arc_servers_jumpstart/vmware/winsrv/terraform map van de gekloonde opslag plaats.From CLI, navigate to the azure_arc_servers_jumpstart/vmware/winsrv/terraform directory of the cloned repo.

  4. Exporteer de omgevings variabelen die u hebt bewerkt door uit te voeren scripts/vars.sh met de opdracht bron, zoals hieronder wordt weer gegeven.Export the environment variables you edited by running scripts/vars.sh with the source command as shown below. Terraform vereist dat deze worden ingesteld om het plan goed te kunnen uitvoeren.Terraform requires these to be set for the plan to execute properly. Houd er rekening mee dat dit script ook automatisch op afstand wordt uitgevoerd op de virtuele machine als onderdeel van de terraform-implementatie.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. Naast de TF_VAR omgevings variabelen die u zojuist hebt geëxporteerd, bewerkt u de terraform-variabelen in de terraform.tfvars om overeen te komen met uw VMware vSphere-omgeving.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.

    Een scherm opname van de omgevings variabelen van de TF_VAR

  6. Voer de terraform init opdracht uit waarmee de terraform AzureRM, lokale en vSphere-providers worden gedownload.Run the terraform init command which will download the Terraform AzureRM, local and vSphere providers.

    Een scherm opname van de opdracht ' terraform init '.

  7. Voer de terraform apply --auto-approve opdracht uit en wacht tot het plan is voltooid.Run the terraform apply --auto-approve command and wait for the plan to finish. Zodra de terraform-implementatie is voltooid, wordt er een nieuwe virtuele machine van Windows Server actief en wordt deze in een nieuwe Azure-resource groep geprojecteerd als een Azure Arc Server-Resource.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.

    Een scherm opname van ' terraform Apply ' is voltooid.

    Een scherm opname van een nieuwe VMware vSphere virtuele Windows Server-machine.

    Een scherm opname van een Azure Arc-server in een Azure-resource groep.

    Een andere scherm opname van een Azure Arc-server in een Azure-resource groep.

De implementatie verwijderenDelete the deployment

  • De meest eenvoudige manier is om de Azure-Arc-resource te verwijderen via de Azure Portal, alleen de resource te selecteren en deze te verwijderen.The most straightforward way is to delete the Azure Arc resource via the Azure portal, just select the resource and delete it. Verwijder bovendien de VMware vSphere VM.In addition, delete the VMware vSphere VM.

    Een scherm opname van een Azure Arc-server die wordt verwijderd.

  • Als u het exemplaar hand matig verwijdert, moet u dit ook verwijderen install_arc_agent.ps1 . dit wordt gemaakt door het terraform-plan.If you delete the instance manually, then you should also delete install_arc_agent.ps1, which is created by the Terraform plan.

  • Als u de gehele omgeving wilt afbreken, gebruikt u de terraform destroy --auto-approve opdracht zoals hieronder wordt weer gegeven.If you want to tear down the entire environment, use the terraform destroy --auto-approve command as shown below.

    Een scherm opname van de opdracht ' terraform Destroy '.