Verwenden eines Terraform-Plans zum Bereitstellen einer Windows-Instanz von Google Cloud Platform und Herstellen einer Verbindung mit Azure Arc

Dieser Artikel enthält einen Leitfaden für die Verwendung des bereitgestellten Terraform-Plans, um eine GCP-Instanz (Google Cloud Platform) unter Windows Server bereitzustellen und als Serverressource mit Azure Arc-Unterstützung zu verbinden.

Voraussetzungen

  1. Klonen Sie das Repository für den Schnelleinstieg in Azure Arc.

    git clone https://github.com/microsoft/azure_arc.git
    
  2. Installieren oder aktualisieren Sie die Azure CLI auf mindestens Version 2.7. Überprüfen Sie mit dem folgenden Befehl die aktuell installierte Version.

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

  4. Google Cloud Platform-Konto mit aktivierter Abrechnung:Erstellen Sie ein kostenloses Testkonto. Wenn Sie virtuelle Windows Server-Computer erstellen möchten, müssen Sie Ihr Konto upgraden, um die Abrechnung zu aktivieren. Wählen Sie im Menü Abrechnung aus, und klicken Sie dann rechts unten auf Upgrade.

    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.

    Haftungsausschluss: Um unerwartete Gebühren zu vermeiden, befolgen Sie die Anweisungen im Abschnitt „Löschen der Bereitstellung“ am Ende dieses Artikels.

  5. Erstellen Sie einen Azure-Dienstprinzipal.

    Um die GCP-VM mit Azure Arc zu verbinden, ist ein Azure-Dienstprinzipal mit der Rolle „Mitwirkender“ erforderlich. Zum Erstellen dieses Dienstprinzipals melden Sie sich bei Ihrem Azure-Konto an und führen den folgenden Befehl aus. Sie können diesen Befehl auch in Azure Cloud Shell ausführen.

    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>"
    

    Beispiel:

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

    Die Ausgabe sollte wie folgt aussehen:

    {
      "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "displayName": "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.

Erstellen eines neuen GCP-Projekts

  1. Wechseln Sie zur Google-API-Konsole, und melden Sie sich mit Ihrem Google-Konto an. Sobald Sie angemeldet sind, erstellen Sie ein neues Projekt mit dem Namen Azure Arc demo. Achten Sie nach dem Erstellen darauf, die Projekt-ID zu kopieren, da sie sich normalerweise vom Projektnamen unterscheidet.

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

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

  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. Klicken Sie auf + APIs und Dienste aktivieren, und suchen Sie nach Compute-Engine. Wählen Sie dann Aktivieren aus, um den API-Zugriff zu aktivieren.

    First screenshot of Compute Engine API in the GCP console.

    Second screenshot of Compute Engine API in the GCP console.

  3. Richten Sie als Nächstes einen Dienstkontoschlüssel ein, den Terraform zum Erstellen und Verwalten von Ressourcen in Ihrem GCP-Projekt verwendet. Wechseln Sie zur Seite Dienstkontoschlüssel erstellen. 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. Dadurch wird eine JSON-Datei mit allen Anmeldeinformationen heruntergeladen, die Terraform für die Verwaltung der Ressourcen benötigt. Kopieren Sie die heruntergeladene JSON-Datei in das Verzeichnis azure_arc_servers_jumpstart/gcp/windows/terraform.

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

Bereitstellung

Bevor Sie den Terraform-Plan ausführen, müssen Sie die vom Plan verwendeten Umgebungsvariablen festlegen und anschließend exportieren. Diese Variablen basieren auf dem Azure-Dienstprinzipal, den Sie soeben erstellt haben, Ihrem Azure-Abonnement und -Mandanten sowie dem GCP-Projektnamen.

  1. Rufen Sie Ihre Azure-Abonnement-ID und Mandanten-ID mithilfe des Befehls az account list ab.

  2. Durch den Terraform-Plan werden Ressourcen sowohl in Microsoft Azure als auch Google Cloud Platform erstellt. Anschließend wird ein Skript auf einer GCP-VM ausgeführt, um den Azure Arc-Agent und alle erforderlichen Artefakte zu installieren. Für dieses Skript werden bestimmte Informationen zu Ihrer GCP- und Azure-Umgebung benötigt. Bearbeiten Sie scripts/vars.sh, und aktualisieren Sie alle Variablen mit den entsprechenden Werten.

    • TF_VAR_subscription_id = ID Ihres Azure-Abonnements
    • TF_VAR_client_id = Anwendungs-ID Ihres Azure-Dienstprinzipals
    • TF_VAR_client_secret = Kennwort Ihres Azure-Dienstprinzipals
    • TF_VAR_tenant_id = ID Ihres Azure-Mandanten
    • TF_VAR_gcp_project_id = ID des GCP-Projekts
    • TF_VAR_gcp_credentials_filename = Name der JSON-Datei mit GCP-Anmeldeinformationen
  3. Navigieren Sie über die CLI zum Verzeichnis azure_arc_servers_jumpstart/gcp/windows/terraform des geklonten Repositorys.

  4. Exportieren Sie die bearbeiteten Umgebungsvariablen, indem Sie scripts/vars.sh mit dem Befehl „source“ ausführen (siehe unten). Diese Variablen sind für eine ordnungsgemäße Ausführung des Terraform-Plans erforderlich.

    source ./scripts/vars.sh
    
  5. Führen Sie den Befehl terraform init aus, um die AzureRM-Anbieter für Terraform herunterzuladen.

    A screenshot of the terraform init command.

  6. Führen Sie dann den Befehl terraform apply --auto-approve aus, und warten Sie, bis der Plan ausgeführt wurde. 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. Die Bereitstellung durch den Agent dauert ein paar Minuten, sodass Sie sich einen Kaffee gönnen können.

    A screenshot of the terraform apply command.

  7. Nach ein paar Minuten sollten Sie das Azure-Portal öffnen und zur Ressourcengruppe arc-gcp-demo navigieren können. Die in GCP erstellte Windows Server-VM ist als Ressource sichtbar.

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

Halbautomatisierte Bereitstellung (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.

A screenshot of the azcmagent connect command.

Wenn Sie den eigentlichen Registrierungsvorgang demonstrieren/steuern möchten, gehen Sie wie folgt vor:

  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.

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

  2. Führen Sie terraform apply --auto-approve wie oben beschrieben aus.

  3. Öffnen Sie die GCP-Konsole, navigieren Sie zur Seite Compute-Instance, und wählen Sie dann die erstellte VM aus.

    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. Erstellen Sie einen Benutzer und ein Kennwort für die VM, indem Sie Kennwort festlegen auswählen und einen Benutzernamen angeben.

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

  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.

    A screenshot showing how to RDP into a GCP instance.

  6. Sobald Sie angemeldet sind, öffnen Sie PowerShell ISE als Administrator. Stellen Sie sicher, dass Sie die x64-Version und nicht die x86-Version von PowerShell ISE ausführen. Wählen Sie nach dem Öffnen Datei > Neu aus, um eine leere .ps1-Datei zu erstellen. Fügen Sie anschließend den gesamten Inhalt von ./scripts/install_arc_agent.ps1 ein. Klicken Sie auf die Schaltfläche „Wiedergeben“, um das Skript auszuführen. Wenn der Vorgang abgeschlossen ist, sollten Sie die Ausgabe sehen, die das erfolgreiche Onboarding der VM zeigt.

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

Löschen der Bereitstellung

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.

A screenshot of the terraform destroy command.

Alternativ können Sie die GCP-VM direkt in der GCP-Konsole löschen.

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