Verwenden eines Terraform-Plans zum Bereitstellen einer Windows-Instanz von Google Cloud Platform und Herstellen einer Verbindung mit Azure ArcUse a Terraform plan to deploy a Google Cloud Platform Windows instance and connect it to Azure Arc

Dieser Artikel enthält eine Anleitung für die Verwendung des bereitgestellten Terraform-Plans, um eine GPC-Instanz für Windows Server bereitzustellen und als Serverressource mit Azure Arc-Unterstützung zu verbinden.This article provides guidance for using the provided Terraform plan to deploy a Windows Server GCP instance 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 CLI 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 von Terraform >= 0.12Install Terraform >= 0.12

  4. Google Cloud-Konto mit aktivierter Abrechnung: Erstellen Sie ein kostenloses Testkonto.Google Cloud account with billing enabled: Create a free trial account. Um Windows Server-VMs zu erstellen, müssen Sie Ihr Konto so aktualisieren, dass die Abrechnung aktiviert ist.To create Windows Server virtual machines, you must upgraded your account to enable billing. Wählen Sie im Menü Abrechnung aus, und klicken Sie dann rechts unten auf Upgrade.Select Billing from the menu and then select Upgrade at the lower right.

    Erster Screenshot, der zeigt, wie Sie die Abrechnung für ein GCP-Konto aktivieren.

    Zweiter Screenshot, der zeigt, wie Sie die Abrechnung für ein GCP-Konto aktivieren.

    Dritter Screenshot, der zeigt, wie Sie die Abrechnung für ein GCP-Konto aktivieren.

    Haftungsausschluss: Um unerwartete Gebühren zu vermeiden, befolgen Sie die Anweisungen im Abschnitt „Löschen der Bereitstellung“ am Ende dieses Artikels.Disclaimer: To prevent unexpected charges, follow the "delete the deployment" section at the end of this article.

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

    Um die GCP-VM mit Azure Arc zu verbinden, ist ein Azure-Dienstprinzipal mit der Rolle „Mitwirkender“ erforderlich.To connect the GCP 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://AzureArcGCP" --role contributor
    

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

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

    Hinweis

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

Erstellen eines neuen GCP-ProjektsCreate a new GCP project

  1. Wechseln Sie zur Google-API-Konsole, und melden Sie sich mit Ihrem Google-Konto an.Browse to the Google API console and sign-in with your Google account. Sobald Sie angemeldet sind, erstellen Sie ein neues Projekt mit dem Namen Azure Arc demo.Once logged in, create a new project named Azure Arc demo. Achten Sie nach dem Erstellen darauf, die Projekt-ID zu kopieren, da sie sich normalerweise vom Projektnamen unterscheidet.After creating it, be sure to copy the project ID since it's usually different from the project name.

    Erster Screenshot der Seite „Neues Projekt“ in der GCP-Konsole.

    Zweiter Screenshot der Seite „Neues Projekt“ in der GCP-Konsole.

  2. Nachdem das neue Projekt erstellt und in der Dropdownliste oben auf der Seite ausgewählt wurde, müssen Sie den Zugriff auf die Compute-Engine API für das Projekt aktivieren.Once the new project is created and selected in the dropdown at the top of the page, you must enable compute engine API access for the project. Klicken Sie auf + APIs und Dienste aktivieren, und suchen Sie nach Compute-Engine.Click on + Enable APIs and Services and search for compute engine. Wählen Sie dann Aktivieren aus, um den API-Zugriff zu aktivieren.Then select Enable to enable API access.

    Erster Screenshot der „Compute-Engine-API“ in der GCP-Konsole.

    Zweiter Screenshot der „Compute-Engine-API“ in der GCP-Konsole.

  3. Richten Sie als Nächstes einen Dienstkontoschlüssel ein, den Terraform zum Erstellen und Verwalten von Ressourcen in Ihrem GCP-Projekt verwendet.Next, set up a service account key, which Terraform will use to create and manage resources in your GCP project. Wechseln Sie zur Seite Dienstkontoschlüssel erstellen.Go to the create service account key page. Wählen Sie in der Dropdownliste Neues Dienstkonto aus. Geben Sie einen Namen ein. Wählen Sie „Projekt“ und dann „Besitzer“ als Rolle, „JSON“ als Schlüsseltyp und Erstellen aus.Select New Service Account from the dropdown, give it a name, select project then owner as the role, JSON as the key type, and select Create. Dadurch wird eine JSON-Datei mit allen Anmeldeinformationen heruntergeladen, die Terraform für die Verwaltung der Ressourcen benötigt.This downloads a JSON file with all the credentials needed for Terraform to manage the resources. Kopieren Sie die heruntergeladene JSON-Datei in das Verzeichnis azure_arc_servers_jumpstart/gcp/windows/terraform.Copy the downloaded JSON file to the azure_arc_servers_jumpstart/gcp/windows/terraform directory.

    Screenshot des Erstellens eines Dienstkontos in der GCP-Konsole.

BereitstellungDeployment

Bevor Sie den Terraform-Plan ausführen, müssen Sie die vom Plan verwendeten Umgebungsvariablen festlegen und anschließend exportieren.Before executing the Terraform plan, you must set and then export 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 dem GCP-Projektnamen.These variables are based on the Azure service principal you've just created, your Azure subscription and tenant, and the GCP project name.

  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 sowohl in Microsoft Azure als auch Google Cloud Platform erstellt.The Terraform plan creates resources in both Microsoft Azure and Google Cloud Platform. Anschließend wird ein Skript auf einer GCP-VM ausgeführt, um den Azure Arc-Agent und alle erforderlichen Artefakte zu installieren.It then executes a script on a GCP virtual machine to install the Azure Arc agent and all necessary artifacts. Für dieses Skript werden bestimmte Informationen zu Ihrer GCP- und Azure-Umgebung benötigt.This script requires certain information about your GCP 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 = Anwendungs-ID Ihres Azure-DienstprinzipalsTF_VAR_client_id = your Azure service principal application ID
    • 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_gcp_project_id = ID des GCP-ProjektsTF_VAR_gcp_project_id = GCP project ID
    • TF_VAR_gcp_credentials_filename = Name der JSON-Datei mit GCP-AnmeldeinformationenTF_VAR_gcp_credentials_filename = GCP credentials JSON filename
  3. Navigieren Sie über die CLI zum Verzeichnis azure_arc_servers_jumpstart/gcp/windows/terraform des geklonten Repositorys.From CLI, navigate to the azure_arc_servers_jumpstart/gcp/windows/terraform directory of the cloned repo.

  4. Exportieren Sie die bearbeiteten Umgebungsvariablen, indem Sie scripts/vars.sh mit dem Befehl „source“ 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.

    source ./scripts/vars.sh
    
  5. Führen Sie den Befehl terraform init aus, um die AzureRM-Anbieter für Terraform herunterzuladen.Run the terraform init command which will download the Terraform AzureRM provider.

    Screenshot des Befehls „terraform init“.

  6. Führen Sie dann den Befehl terraform apply --auto-approve aus, und warten Sie, bis der Plan ausgeführt wurde.Next, run the terraform apply --auto-approve command and wait for the plan to finish. Nach Abschluss des Terraform-Skripts haben Sie eine Windows Server 2019-VM für GCP bereitgestellt und ein Skript ausgelöst, um den Azure Arc-Agent auf die VM herunterzuladen und die VM als einen neuen Server mit Azure Arc-Unterstützung innerhalb einer neuen Azure-Ressourcengruppe zu verbinden.Upon completion of the Terraform script, you will have deployed a GCP Windows Server 2019 VM and initiated a script to download the Azure Arc agent to the VM and connect the VM as a new Azure Arc enabled server inside a new Azure resource group. Die Bereitstellung durch den Agent dauert ein paar Minuten, sodass Sie sich einen Kaffee gönnen können.It will take a few minutes for the agent to finish provisioning so grab a coffee.

    Screenshot des Befehls „terraform apply“.

  7. Nach ein paar Minuten sollten Sie das Azure-Portal öffnen und zur Ressourcengruppe arc-gcp-demo navigieren können.After a few minutes, you should be able to open the Azure portal and navigate to the arc-gcp-demo resource group. Die in GCP erstellte Windows Server-VM ist als Ressource sichtbar.The Windows Server virtual machine created in GCP will be visible as a resource.

    Screenshot eines Servers mit Azure Arc-Unterstützung im Azure-Portal.

Halbautomatisierte Bereitstellung (optional)Semi-automated deployment (optional)

Der Terraform-Plan installiert automatisch den Azure Arc-Agent und verbindet die VM mit Azure als verwaltete Ressource, indem beim ersten Start der VM ein PowerShell-Skript ausgeführt wird.The Terraform plan automatically installs the Azure Arc agent and connects the VM to Azure as a managed resource by executing a PowerShell script when the VM is first booted.

Screenshot des Befehls „azcmagent connect“.

Wenn Sie den eigentlichen Registrierungsvorgang demonstrieren/steuern möchten, gehen Sie wie folgt vor:If you want to demo/control the actual registration process, do the following:

  1. Ehe Sie den Befehl terraform apply ausführen, öffnen Sie main.tf, und kommentieren Sie die Zeile windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content aus, und speichern Sie die Datei.Before running the terraform apply command, open main.tf and comment out the windows-startup-script-ps1 = local-file.install_arc_agent-ps1.content line and save the file.

    Screenshot, der zeigt, dass „main.tf“ auskommentiert wird, um das automatische Onboarding eines Azure Arc-Agents zu deaktivieren.

  2. Führen Sie terraform apply --auto-approve wie oben beschrieben aus.Run terraform apply --auto-approve as instructed above.

  3. Öffnen Sie die GCP-Konsole, navigieren Sie zur Seite Compute-Instance, und wählen Sie dann die erstellte VM aus.Open the GCP console and navigate to the compute instance page, and then select the VM that was created.

    Screenshot eines Servers in der GCP-Konsole.

    Screenshot, der zeigt, wie Sie in der GCP-Konsole ein Kennwort für einen Windows-Server zurücksetzen.

  4. Erstellen Sie einen Benutzer und ein Kennwort für die VM, indem Sie Kennwort festlegen auswählen und einen Benutzernamen angeben.Create a user and password for the VM by selecting Set Password and specifying a user name.

    Screenshot, der zeigt, wie Sie in der GCP-Konsole einen Benutzernamen und ein Kennwort für einen Windows-Server festlegen.

  5. Verbinden Sie sich per RDP mit der VM, indem Sie auf der Seite „VM“ in der GCP-Konsole die Schaltfläche „RDP“ auswählen und sich mit dem soeben erstellten Benutzernamen und Kennwort anmelden.RDP into the VM by selecting the RDP button from the VM page in the GCP console, and sign in with the username and password you just created.

    Screenshot, der zeigt, wie Sie eine RDP-Verbindung mit einer GCP-Instanz herstellen.

  6. Sobald Sie angemeldet sind, öffnen Sie PowerShell ISE als Administrator.Once logged in, open PowerShell ISE as Administrator. Stellen Sie sicher, dass Sie die x64-Version und nicht die x86-Version von PowerShell ISE ausführen.Make sure you are running the x64 version of PowerShell ISE and not the x86 version. Wählen Sie nach dem Öffnen Datei > Neu aus, um eine leere .ps1-Datei zu erstellen.Once opened, select File > New to create an empty .ps1 file. Fügen Sie anschließend den gesamten Inhalt von ./scripts/install_arc_agent.ps1 ein.Then paste in the entire contents of ./scripts/install_arc_agent.ps1. Klicken Sie auf die Schaltfläche „Wiedergeben“, um das Skript auszuführen.Click the play button to execute the script. Wenn der Vorgang abgeschlossen ist, sollten Sie die Ausgabe sehen, die das erfolgreiche Onboarding der VM zeigt.When complete, you should see the output showing successful onboarding of the machine.

    Screenshot, der die Windows PowerShell Integrated Scripting Environment mit einem Verbindungsskript für den Azure Arc-Agent zeigt.

Löschen der BereitstellungDelete the deployment

Um alle Ressourcen zu löschen, die Sie als Teil dieser Demo erstellt haben, führen Sie den Befehl terraform destroy --auto-approve wie unten gezeigt aus.To delete all the resources you created as part of this demo use the terraform destroy --auto-approve command as shown below.

Screenshot des Befehls „terraform destroy“.

Alternativ können Sie die GCP-VM direkt in der GCP-Konsole löschen.Alternatively, you can delete the GCP VM directly from GCP console.

Screenshot, der zeigt, wie Sie eine VM in der GCP-Konsole löschen.