Een Terraform-plan gebruiken om een virtuele VMware Windows-machine te implementeren en deze te verbinden met Azure Arc

Dit artikel bevat richtlijnen voor het gebruik van het opgegeven Terraform-plan voor het implementeren van een virtuele Windows Server-, VMware vSphere-machine en het verbinden als een serverresource met Azure Arc.

Vereisten

  1. Kloon de Azure Arc Jumpstart-opslagplaats.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Azure CLI installeren of bijwerken naar versie 2.7 en hoger. Gebruik de volgende opdracht om uw huidige geïnstalleerde versie te controleren.

    az --version
    
  3. Terraform >installeren = 0.12

  4. Een VMware vCenter Server-gebruiker met machtigingen voor het implementeren van een virtuele machine vanuit een sjabloon in de vSphere-webclient.

  5. Maak een Azure-service-principal.

    Als u de virtuele VMware vSphere-machine wilt verbinden met Azure Arc, is een Azure-service-principal vereist die is toegewezen met de rol Inzender. Als u deze wilt maken, meldt u zich aan bij uw Azure-account en voert u de volgende opdracht uit. U kunt deze opdracht ook uitvoeren in 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>"
    

    Voorbeeld:

    az ad sp create-for-rbac -n "http://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    De uitvoer moet er ongeveer als volgt uitzien:

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

    Notitie

    We raden u ten zeerste aan om de service-principal te koppelen aan een specifiek Azure-abonnement en een specifieke resourcegroep.

Een Windows Server VMware vSphere VM-sjabloon voorbereiden

Voordat u deze richtlijnen gebruikt om een Virtuele Windows Server-machine te implementeren en deze te verbinden met Azure Arc, is een VMware vSphere-sjabloon vereist. U kunt een dergelijke sjabloon eenvoudig maken met VMware vSphere 6.5 en hoger.

Het Terraform-plan heeft de remote-exec inrichting gebruikt die gebruikmaakt van het WinRM-protocol om het vereiste Azure Arc-script te kopiëren en uit te voeren. Als u WinRM-connectiviteit met de VIRTUELE machine wilt toestaan, voert u het allow_winrm PowerShell-script uit op uw VIRTUELE machine voordat u het converteert naar een sjabloon.

Notitie

Als u al een Windows Server VM-sjabloon hebt, moet u de handleiding nog steeds gebruiken als referentie.

Implementatie

Voordat u het Terraform-plan uitvoert, moet u de omgevingsvariabelen instellen die door het plan worden gebruikt. Deze variabelen zijn gebaseerd op de Azure-service-principal die u zojuist hebt gemaakt, uw Azure-abonnement en -tenant en uw VMware vSphere-referenties.

  1. Haal uw Azure-abonnements-id en tenant-id op met behulp van de az account list opdracht.

  2. Het Terraform-plan maakt resources in zowel Microsoft Azure als VMware vSphere. Vervolgens wordt een script uitgevoerd op de virtuele machine om de Azure Arc-agent en alle benodigde artefacten te installeren. Dit script vereist bepaalde informatie over uw VMware vSphere- en Azure-omgevingen. Bewerk en werk scripts/vars.sh elk van de variabelen bij met de juiste waarden.

    • TF_VAR_subscription_id = uw Azure-abonnements-id
    • TF_VAR_client_id = de naam van uw Azure-service-principal
    • TF_VAR_client_secret = wachtwoord voor uw Azure-service-principal
    • TF_VAR_tenant_id = uw Azure-tenant-id
    • TF_VAR_resourceGroup = Naam van Azure-resourcegroep
    • TF_VAR_location = Azure-regio
    • TF_VAR_vsphere_user = gebruikersnaam van vCenter-beheerder
    • TF_VAR_vsphere_password = vCenter-beheerderswachtwoord
    • TF_VAR_vsphere_server = vCenter Server FQDN/IP
    • TF_VAR_admin_user = Gebruikersnaam van besturingssysteembeheerder
    • TF_VAR_admin_password = Beheerderswachtwoord voor het besturingssysteem
  3. Navigeer vanuit CLI naar de azure_arc_servers_jumpstart/vmware/winsrv/terraform map van de gekloonde opslagplaats.

  4. Exporteer de omgevingsvariabelen die u hebt bewerkt door deze uit te voeren scripts/vars.sh met de bronopdracht, zoals hieronder wordt weergegeven. Terraform vereist dat deze worden ingesteld voor de juiste uitvoering van het plan. Houd er rekening mee dat dit script ook automatisch op afstand op de virtuele machine wordt uitgevoerd als onderdeel van de Terraform-implementatie.

    source ./scripts/vars.sh
    
  5. Naast de TF_VAR omgevingsvariabelen die u zojuist hebt geëxporteerd, bewerkt u de Terraform-variabelen in de terraform.tfvars omgeving die overeenkomen met uw VMware vSphere-omgeving.

    A screenshot of the TF_VAR environment variables

  6. Voer de terraform init opdracht uit waarmee de Terraform AzureRM- en vSphere-providers worden gedownload.

    A screenshot of the terraform init command.

  7. Voer de terraform apply --auto-approve opdracht uit en wacht tot het plan is voltooid. Zodra de Terraform-implementatie is voltooid, wordt een nieuwe Windows Server-VM actief en wordt deze geprojecteerd als een Azure Arc-serverresource in een zojuist gemaakte Azure-resourcegroep.

    A screenshot of terraform apply completed.

    A screenshot of a new VMware vSphere Windows Server virtual machine.

    A screenshot of an Azure Arc-enabled server in an Azure resource group.

    Another screenshot of an Azure Arc-enabled server in an Azure resource group.

De implementatie verwijderen

  • De eenvoudigste manier is om de Azure Arc-resource te verwijderen via Azure Portal, selecteer de resource en verwijder deze. Verwijder bovendien de VMware vSphere-VM.

    A screenshot of an Azure Arc-enabled server being deleted.

  • Als u het exemplaar handmatig verwijdert, moet u ook verwijderen install_arc_agent.ps1. Dit wordt gemaakt door het Terraform-plan.

  • Als u de hele omgeving wilt afbreken, gebruikt u de terraform destroy --auto-approve opdracht zoals hieronder wordt weergegeven.

    A screenshot of the terraform destroy command.