Verwenden eines Terraform-Plans zum Bereitstellen einer VMware-VM unter Ubuntu und Verbinden dieser VM mit Azure ArcUse a Terraform plan to deploy a VMware Ubuntu virtual machine and connect it to Azure Arc

Dieser Artikel enthält einen Leitfaden für die Verwendung des bereitgestellten Terraform-Plans, um eine VMware vSphere-VM mit Ubuntu Server bereitzustellen und als Serverressource mit Azure Arc-Unterstützung zu verbinden.This article provides guidance for using the provided Terraform plan to deploy an Ubuntu server, VMware vSphere virtual machine and connect it as an Azure Arc enabled server resource.

VoraussetzungenPrerequisites

  1. Klonen Sie das Repository für den Schnelleinstieg in Azure Arc.Clone the Azure Arc Jumpstart repository.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Installieren oder aktualisieren Sie die Azure-Befehlszeilenschnittstelle auf mindestens Version 2.7.Install or update Azure CLI to version 2.7 and above. Überprüfen Sie mit dem folgenden Befehl die aktuell installierte Version.Use the following command to check your current installed version.

    az --version
    
  3. Installieren Sie Terraform ab Version 0.12.Install Terraform >= 0.12

  4. Ein VMware vCenter Server-Benutzer mit Berechtigungen zum Bereitstellen einer VM anhand einer Vorlage im vSphere-Webclient.A VMware vCenter Server user with permissions to deploy a virtual machine from a template in the vSphere web client.

  5. Erstellen Sie einen Azure-Dienstprinzipal.Create an Azure service principal.

    Um die VMware vSphere-VM mit Azure Arc zu verbinden, ist ein Azure-Dienstprinzipal mit der Rolle „Mitwirkender“ erforderlich.To connect the VMware vSphere virtual machine to Azure Arc, an Azure service principal assigned with the Contributor role is required. Zum Erstellen dieses Dienstprinzipals melden Sie sich bei Ihrem Azure-Konto an und führen den folgenden Befehl aus.To create it, sign in to your Azure account and run the following command. Sie können diesen Befehl auch in Azure Cloud Shell ausführen.You can also run this command in Azure Cloud Shell.

    az login
    az ad sp create-for-rbac -n "<Unique SP Name>" --role contributor
    

    Beispiel:For example:

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

    Das Ergebnis sollte wie folgt aussehen:Output should look like this:

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

    Hinweis

    Es wird dringend empfohlen, für den Dienstprinzipal ein bestimmtes Azure-Abonnement und eine bestimmte Ressourcengruppe festzulegen.We highly recommend that you scope the service principal to a specific Azure subscription and resource group.

Vorbereiten einer VMware vSphere-VM-Vorlage mit Ubuntu ServerPreparing an Ubuntu server VMware vSphere VM template

Zum Ausführen der nachfolgend beschriebenen Schritte zum Bereitstellen einer Ubuntu Server-VM und zum Verbinden der VM mit Azure Arc wird eine VMware vSphere-Vorlage benötigt.Before using the below guide to deploy an Ubuntu server VM and connect it to Azure Arc, a VMware vSphere template is required. In diesem Artikel wird erläutert, wie sich eine solche Vorlage mit VMware vSphere 6.5 und höher mühelos erstellen lässt.This article shows how to easily create such a template using VMware vSphere 6.5 and above.

Hinweis

Auch wenn Sie bereits über eine Ubuntu Server-VM-Vorlage verfügen, sollten Sie den Leitfaden als Referenz verwenden.If you already have an Ubuntu server VM template it is still recommended to use the guide as a reference.

BereitstellungDeployment

Bevor Sie den Terraform-Plan ausführen, müssen Sie die im Plan verwendeten Umgebungsvariablen festlegen.Before executing the Terraform plan, you must set the environment variables which will be used by the plan. Diese Variablen basieren auf dem Azure-Dienstprinzipal, den Sie soeben erstellt haben, Ihrem Azure-Abonnement und -Mandanten sowie Ihren VMware vSphere-Anmeldeinformationen.These variables are based on the Azure service principal you've just created, your Azure subscription and tenant, and your VMware vSphere credentials.

  1. Rufen Sie Ihre Azure-Abonnement-ID und Mandanten-ID mithilfe des Befehls az account list ab.Retrieve your Azure subscription ID and tenant ID using the az account list command.

  2. Durch den Terraform-Plan werden Ressourcen in Microsoft Azure sowie in VMware vSphere erstellt.The Terraform plan creates resources in both Microsoft Azure and VMware vSphere. Anschließend wird ein Skript auf der VM ausgeführt, um den Azure Arc-Agent und alle erforderlichen Artefakte zu installieren.It then executes a script on the virtual machine to install the Azure Arc agent and all necessary artifacts. Für dieses Skript werden bestimmte Informationen zu Ihrer VMware vSphere- und Azure-Umgebung benötigt.This script requires certain information about your VMware vSphere and Azure environments. Bearbeiten Sie scripts/vars.sh, und aktualisieren Sie alle Variablen mit den entsprechenden Werten.Edit scripts/vars.sh and update each of the variables with the appropriate values.

    • TF_VAR_subscription_id = ID Ihres Azure-AbonnementsTF_VAR_subscription_id = Your Azure subscription ID
    • TF_VAR_client_id = Name Ihres Azure-DienstprinzipalsTF_VAR_client_id = Your Azure service principal name
    • TF_VAR_client_secret = Kennwort Ihres Azure-DienstprinzipalsTF_VAR_client_secret= Your Azure service principal password
    • TF_VAR_tenant_id = ID Ihres Azure-MandantenTF_VAR_tenant_id = Your Azure tenant ID
    • TF_VAR_resourceGroup = Name der Azure-RessourcengruppeTF_VAR_resourceGroup = Azure resource group name
    • TF_VAR_location = Azure-RegionTF_VAR_location = Azure region
    • TF_VAR_vsphere_user = Benutzername des vCenter-AdministratorsTF_VAR_vsphere_user = vCenter admin username
    • TF_VAR_vsphere_password = Kennwort des vCenter-AdministratorsTF_VAR_vsphere_password = vCenter admin password
    • TF_VAR_vsphere_server = FQDN/IP-Adresse von vCenter ServerTF_VAR_vsphere_server = vCenter server FQDN/IP
    • TF_VAR_admin_user = Benutzername des BetriebssystemadministratorsTF_VAR_admin_user =OS admin username
    • TF_VAR_admin_password = Kennwort des BetriebssystemadministratorsTF_VAR_admin_password = OS admin password
  3. Navigieren Sie über die CLI zum Verzeichnis azure_arc_servers_jumpstart/vmware/ubuntu/terraform des geklonten Repositorys.From CLI, navigate to the azure_arc_servers_jumpstart/vmware/ubuntu/terraform directory of the cloned repo.

  4. Exportieren Sie die bearbeiteten Umgebungsvariablen, indem Sie scripts/vars.sh mit dem Quellbefehl ausführen (siehe unten).Export the environment variables you edited by running scripts/vars.sh with the source command as shown below. Diese Variablen sind für eine ordnungsgemäße Ausführung des Terraform-Plans erforderlich.Terraform requires these to be set for the plan to execute properly. Beachten Sie, dass dieses Skript im Rahmen der Terraform-Bereitstellung auch automatisch remote auf der VM ausgeführt wird.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. Bearbeiten Sie zusätzlich zu den TF_VAR-Umgebungsvariablen, die Sie soeben exportiert haben, die Terraform-Variablen in terraform.tfvars entsprechend Ihrer VMware vSphere-Umgebung.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.

    Screenshot der TF_VAR-Umgebungsvariablen

  6. Führen Sie den Befehl terraform init aus, um die AzureRM-, lokalen und vSphere-Anbieter für Terraform herunterzuladen.Run the terraform init command which will download the Terraform AzureRM, local, and vSphere providers.

    Screenshot des Befehls „terraform init“

  7. Führen Sie den Befehl terraform apply --auto-approve aus, und warten Sie, bis der Plan ausgeführt wurde.Run the terraform apply --auto-approve command and wait for the plan to finish.

  8. Nachdem die Terraform-Bereitstellung abgeschlossen wurde, wird eine neue Ubuntu Server-VM gestartet und als Serverressource mit Azure Arc-Unterstützung in einer neu erstellten Azure-Ressourcengruppe projiziert.Once the Terraform deployment is completed, a new Ubuntu server VM will be up and running and will be projected as an Azure Arc enabled server resource in a newly created Azure resource group.

    Screenshot des abgeschlossenen Befehls „terraform apply“

    Screenshot einer neuen VMware vSphere-VM unter Ubuntu Server

    Screenshot eines Servers mit Azure Arc-Unterstützung in einer Azure-Ressourcengruppe.

    Weiterer Screenshot eines Servers mit Azure Arc-Unterstützung in einer Azure-Ressourcengruppe.

Löschen der BereitstellungDelete the deployment

  • Die einfachste Möglichkeit ist das Löschen der Azure Arc-Ressource über das Azure-Portal. Wählen Sie dazu einfach die Ressource aus, und löschen Sie sie.The most straightforward way is to delete the Azure Arc resource via the Azure portal, just select the resource and delete it. Löschen Sie außerdem die VMware vSphere-VM.In addition, delete the VMware vSphere VM.

    Screenshot eines Servers mit Azure Arc-Unterstützung, der gelöscht wird.

    Wenn Sie die Instanz manuell löschen, sollten Sie auch install_arc_agent.sh löschen, was durch den Terraform-Plan erstellt wird.If you delete the instance manually, then you should also delete install_arc_agent.sh, which is created by the Terraform plan.

  • Zum Löschen der gesamten Umgebung verwenden Sie den Befehl terraform destroy --auto-approve wie unten gezeigt.If you want to tear down the entire environment, use the terraform destroy --auto-approve command as shown below.

    Screenshot des Befehls „terraform destroy“