Een Terraform-plan gebruiken om een Google Cloud Platform Windows-exemplaar 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 GCP-exemplaar (Windows Server Google Cloud Platform) 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. Google Cloud Platform-account waarvoor facturering is ingeschakeld: Maak een gratis proefaccount. Als u virtuele Windows Server-machines wilt maken, moet u uw account upgraden om facturering in te schakelen. Selecteer Facturering in het menu en selecteer vervolgens Upgrade in de rechterbenedenhoek.

    First screenshot showing how to enable billing on a GCP account.

    Second screenshot showing how to enable billing on a GCP account.

    Third screenshot showing how to enable billing on a GCP account.

    Disclaimer: Als u onverwachte kosten wilt voorkomen, volgt u de sectie 'De implementatie verwijderen' aan het einde van dit artikel.

  5. Maak een Azure-service-principal.

    Als u de virtuele GCP-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://AzureArcGCP" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    De uitvoer moet er ongeveer als volgt uitzien:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "http://AzureArcGCP",
      "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 nieuw GCP-project maken

  1. Blader naar de Google API-console en meld u aan met uw Google-account. Zodra u bent aangemeld, maakt u een nieuw project met de naam Azure Arc demo. Nadat u deze hebt gemaakt, moet u de project-id kopiëren, omdat deze meestal verschilt van de projectnaam.

    First screenshot of the New Project page in the GCP console.

    Second screenshot of the New Project page in the GCP console.

  2. Zodra het nieuwe project is gemaakt en geselecteerd in de vervolgkeuzelijst boven aan de pagina, moet u de API-toegang van de compute engine voor het project inschakelen. Klik op + API's en services inschakelen en zoek naar de berekeningsengine. Selecteer Vervolgens Inschakelen om API-toegang in te schakelen.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Stel vervolgens een serviceaccountsleutel in die Terraform gebruikt om resources in uw GCP-project te maken en te beheren. Ga naar de pagina serviceaccountsleutel maken. Selecteer Nieuw serviceaccount in de vervolgkeuzelijst, geef het een naam, selecteer project en eigenaar als de rol, JSON als sleuteltype en selecteer Maken. Hiermee downloadt u een JSON-bestand met alle referenties die nodig zijn voor Terraform om de resources te beheren. Kopieer het gedownloade JSON-bestand naar de azure_arc_servers_jumpstart/gcp/windows/terraform map.

    A screenshot of how to create a service account in the GCP console.

Implementatie

Voordat u het Terraform-plan uitvoert, moet u de omgevingsvariabelen instellen en exporteren 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 de naam van het GCP-project.

  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 Google Cloud Platform. Vervolgens wordt een script uitgevoerd op een virtuele GCP-machine om de Azure Arc-agent en alle benodigde artefacten te installeren. Dit script vereist bepaalde informatie over uw GCP- 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 toepassings-id 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_gcp_project_id = GCP-project-id
    • TF_VAR_gcp_credentials_filename = JSON-bestandsnaam van GCP-referenties
  3. Navigeer vanuit CLI naar de azure_arc_servers_jumpstart/gcp/windows/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.

    source ./scripts/vars.sh
    
  5. Voer de terraform init opdracht uit waarmee de Terraform AzureRM-provider wordt gedownload.

    A screenshot of the terraform init command.

  6. Voer vervolgens de terraform apply --auto-approve opdracht uit en wacht tot het plan is voltooid. Nadat het Terraform-script is voltooid, hebt u een GCP Windows Server 2019-VM geïmplementeerd en een script gestart om de Azure Arc-agent te downloaden naar de VIRTUELE machine en de VM te verbinden als een nieuwe server met Azure Arc in een nieuwe Azure-resourcegroep. Het duurt enkele minuten voordat de agent klaar is met inrichten, dus pak een kopje koffie.

    A screenshot of the terraform apply command.

  7. Na een paar minuten moet u Azure Portal kunnen openen en naar de arc-gcp-demo resourcegroep navigeren. De virtuele Windows Server-machine die in GCP is gemaakt, is zichtbaar als een resource.

    A screenshot of an Azure Arc-enabled server in the Azure portal.

Semi-geautomatiseerde implementatie (optioneel)

Het Terraform-plan installeert automatisch de Azure Arc-agent en verbindt de VM met Azure als een beheerde resource door een PowerShell-script uit te voeren wanneer de virtuele machine voor het eerst wordt opgestart.

A screenshot of the azcmagent connect command.

Als u het daadwerkelijke registratieproces wilt demo/beheren, gaat u als volgt te werk:

  1. Voordat u de terraform apply opdracht uitvoert, opent main.tf en markeert u de windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content regel en slaat u het bestand op.

    A screenshot showing main.tf being commented out to disable automatic onboarding of an Azure Arc agent.

  2. Voer terraform apply --auto-approve de bovenstaande opdracht uit.

  3. Open de GCP-console en navigeer naar de pagina rekeninstantie en selecteer vervolgens de virtuele machine die is gemaakt.

    A screenshot of a server in the GCP console.

    A screenshot showing how to reset a password for a Windows Server in the GCP console.

  4. Maak een gebruiker en wachtwoord voor de virtuele machine door Wachtwoord instellen te selecteren en een gebruikersnaam op te geven.

    A screenshot showing how to set a username and password for a Windows Server in the GCP console.

  5. RDP in de VIRTUELE machine door de RDP-knop te selecteren op de pagina VM in de GCP-console en meld u aan met de gebruikersnaam en het wachtwoord die u zojuist hebt gemaakt.

    A screenshot showing how to RDP into a GCP instance.

  6. Nadat u bent aangemeld, opent u PowerShell ISE als Beheer istrator. Zorg ervoor dat u de x64-versie van PowerShell ISE uitvoert en niet de x86-versie. Nadat u het bestand hebt geopend, selecteert u Bestand > nieuw om een leeg .ps1 bestand te maken. Plak vervolgens de volledige inhoud van ./scripts/install_arc_agent.ps1. Klik op de afspeelknop om het script uit te voeren. Als u klaar bent, ziet u de uitvoer met geslaagde onboarding van de machine.

    Screenshot showing the Windows PowerShell integrated scripting environment with an Azure Arc agent connection script.

De implementatie verwijderen

Als u alle resources die u hebt gemaakt als onderdeel van deze demo wilt verwijderen, gebruikt u de terraform destroy --auto-approve opdracht, zoals hieronder wordt weergegeven.

A screenshot of the terraform destroy command.

U kunt de GCP-VM ook rechtstreeks uit de GCP-console verwijderen.

A screenshot showing how to delete a virtual machine from the GCP console.