Condividi tramite


Usare un piano Terraform per distribuire una macchina virtuale VMware Windows e connetterla ad Azure Arc

Questo articolo illustra come usare il piano Terraform fornito per distribuire una macchina virtuale VMware vSphere, Windows Server e connetterla come risorsa server abilitata per Azure Arc.

Prerequisiti

  1. Clonare il repository delle risorse introduttive per Azure Arc.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Installare l'interfaccia della riga di comando di Azure 2.7 e successive o eseguirne l'aggiornamento a tale versione. Usare il comando seguente per verificare l'attuale versione installata.

    az --version
    
  3. Installare Terraform >= 0.12

  4. Un utente di VMware vCenter Server con le autorizzazioni per distribuire una macchina virtuale da un modello nel client Web vSphere.

  5. Creare un'entità servizio di Azure.

    Per connettere la macchina virtuale VMware vSphere ad Azure Arc, è necessario disporre di un'entità servizio di Azure con il ruolo Collaboratore. Per crearla, accedere al proprio account Azure ed eseguire il comando seguente. È possibile eseguire il comando anche 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>"
    

    Ad esempio:

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

    L'output dovrebbe essere simile al seguente:

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

    Nota

    È consigliabile impostare l'ambito dell'entità servizio su una sottoscrizione e un gruppo di risorse di Azure specifici.

Preparare un modello di macchina virtuale VMware vSphere Windows Server

Prima di usare queste linee guida per distribuire una macchina virtuale Windows Server e connetterla ad Azure Arc, è necessario munirsi di un modello VMware vSphere. È possibile creare facilmente un modello di questo tipo usando VMware vSphere 6.5 e versioni successive.

Il piano Terraform ha usato il provisioner remote-exec che usa il protocollo WinRM per copiare ed eseguire lo script di Azure Arc richiesto. Per consentire la connettività WinRM alla macchina virtuale, eseguire lo script di PowerShell allow_winrm nella macchina virtuale prima di convertirla in modello.

Nota

Se si dispone già di un modello di macchina virtuale Windows Server, è comunque consigliabile usare la guida come riferimento.

Distribuzione

Prima di eseguire il piano di Terraform, è necessario impostare le variabili di ambiente che verranno usate. Queste variabili si basano sull'entità servizio di Azure appena creata, sulla sottoscrizione e sul tenant di Azure, nonché sulle credenziali VMware vSphere.

  1. Recuperare gli ID della sottoscrizione e del tenant di Azure usando il comando az account list.

  2. Il piano di Terraform crea risorse sia in Microsoft Azure sia in VMware vSphere. Esegue quindi uno script nella macchina virtuale per installare l'agente di Azure Arc e tutti gli artefatti necessari. Questo script richiede determinate informazioni sugli ambienti VMware vSphere e Azure in uso. Modificare scripts/vars.sh e aggiornare ciascuna variabile con i valori appropriati.

    • TF_VAR_subscription_id = ID sottoscrizione di Azure
    • TF_VAR_client_id = nome dell'entità servizio di Azure
    • TF_VAR_client_secret = password dell'entità servizio di Azure
    • TF_VAR_tenant_id = ID tenant di Azure
    • TF_VAR_resourceGroup = nome del gruppo di risorse di Azure
    • TF_VAR_location = area di Azure
    • TF_VAR_vsphere_user = nome utente amministratore di vCenter
    • TF_VAR_vsphere_password = password amministratore di vCenter
    • TF_VAR_vsphere_server = FQDN/IP del server vCenter
    • TF_VAR_admin_user = nome utente amministratore del sistema operativo
    • TF_VAR_admin_password = password amministratore del sistema operativo
  3. Nell'interfaccia della riga di comando passare alla directory azure_arc_servers_jumpstart/vmware/winsrv/terraform del repository clonato.

  4. Esportare le variabili di ambiente modificate eseguendo scripts/vars.sh con il comando source, come illustrato di seguito. Terraform ne richiede l'impostazione per il corretto funzionamento del piano. Questo script verrà eseguito automaticamente anche in remoto nella macchina virtuale nell'ambito della distribuzione di Terraform.

    source ./scripts/vars.sh
    
  5. Oltre alle variabili di ambiente di TF_VAR appena esportate, modificare le variabili di Terraform nel file terraform.tfvars in modo che corrispondano all'ambiente VMware vSphere in uso.

    A screenshot of the TF_VAR environment variables

  6. Eseguire il comando terraform init per scaricare i provider AzureRM, locale e vSphere di Terraform.

    A screenshot of the terraform init command.

  7. Eseguire il comando terraform apply --auto-approve e attendere il completamento del piano. Al termine della distribuzione di Terraform, una nuova macchina virtuale Windows Server sarà in esecuzione e verrà proiettata come risorsa server Azure Arc in un gruppo di risorse di Azure appena creato.

    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.

Eliminare la distribuzione

  • Il modo più semplice consiste nell'eliminare la risorsa Azure Arc tramite il portale di Azure. Basta selezionare la risorsa ed eliminarla. Eliminare anche la macchina virtuale VMware vSphere.

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

  • Se si elimina l'istanza manualmente, è necessario eliminare anche install_arc_agent.ps1, che viene creato dal piano di Terraform.

  • Se si vuole eliminare l'intero ambiente, usare il comando terraform destroy --auto-approve come illustrato di seguito.

    A screenshot of the terraform destroy command.