Verwenden Sie eine Azure Resource Manager-Vorlage zum Bereitstellen und Verbinden einer Azure-VM mit Azure Arc.Use an Azure Resource Manager template to deploy and connect an Azure virtual machine to Azure Arc

Dieser Artikel enthält eine Anleitung zum Verwenden einer Azure Resource Manager-Vorlage (ARM-Vorlage) zum automatischen Integrieren eines virtuellen Azure-Computers (Azure-VM) in Azure Arc. Mit der bereitgestellten ARM-Vorlage werden die Azure-Ressourcen erstellt und das Azure Arc-Onboarding-Skript auf der VM ausgeführt.This article provides guidance for using an Azure Resource Manager template (ARM template) to automatically onboard an Azure virtual machine (Azure VM) running Windows to Azure Arc. The provided ARM template is responsible for creating the Azure resources and executing the Azure Arc onboard script on the VM.

Auf Azure-VMs wird standardmäßig Azure Instance Metadata Service (IMDS) verwendet.Azure VMs are using the Azure Instance Metadata Service (IMDS) by default. Wenn Sie eine Azure-VM als Server mit Azure Arc-Unterstützung projizieren, entsteht ein Konflikt, durch den verhindert wird, dass die Azure Arc-Serverressourcen bei Verwendung von IMDS als Einheit dargestellt werden.By projecting an Azure VM as an Azure Arc enabled server, a conflict is created, which will not allow for the Azure Arc server resources to be represented as one when the IMDS is being used. Stattdessen „fungiert“ der Azure Arc-Server weiterhin als native Azure-VM.Instead, the Azure Arc server will still "act" as a native Azure VM.

In diesem Leitfaden können Sie Azure-VMs nur zu Demonstrationszwecken verwenden und in Azure Arc integrieren.This guide will allow you to use and onboard Azure VMs to Azure Arc for demo purposes only. Sie haben die Möglichkeit, einen Server zu simulieren, der außerhalb von Azure bereitgestellt wird, z. B. „lokal“ oder auf anderen Cloudplattformen.You will have the ability to simulate a server deployed outside of Azure, for example, "on-premises" or in other cloud platforms.

Hinweis

Es wird nicht davon ausgegangen, dass es sich bei einem virtuellen Azure-Computer um einen Server mit Azure Arc-Unterstützung handelt.An Azure VM is not expected to be an Azure Arc enabled server. Das folgende Szenario wird nicht unterstützt und sollte nur zu Demonstrations- und Testzwecken verwendet werden.The below scenario is unsupported and should only be used for demo and testing purposes.

VoraussetzungenPrerequisites

  1. Klonen Sie das Repository für den Einstieg 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. Azure-Abonnement: Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen.Azure subscription: if you don't have an Azure subscription, you can create a free Azure account.

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

    Damit Sie die Azure-Ressourcen mithilfe der ARM-Vorlage bereitstellen können, ist ein Azure-Dienstprinzipal erforderlich, dem die Rolle „Mitwirkender“ zugewiesen ist.In order for you to deploy the Azure resources using the ARM template, 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, 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.

AutomatisierungsflowAutomation flow

Im Folgenden wird der Ablauf der Automatisierung und Bereitstellung erläutert.For you to get familiar with the automation and deployment flow, below is an explanation.

  1. Ein Benutzer bearbeitet die Parameterdatei der ARM-Vorlage (einmalige Bearbeitung).A user edits the ARM template parameters file (one time edit). Diese Parameterwerte werden für die gesamte Bereitstellung verwendet.These parameter values are being used throughout the deployment.

  2. Die ARM-Vorlage enthält eine benutzerdefinierte Azure-VM-Skripterweiterung, mit der das PowerShell-Skript install_arc_agent.ps1 bereitgestellt wird.The ARM template includes an Azure VM custom script extension, which deploys the install_arc_agent.ps1 PowerShell script.

  3. Damit die Azure-VM erfolgreich als Server mit Azure Arc-Unterstützung projiziert werden kann, wird mit dem Skript Folgendes durchgeführt:In order to allow the Azure VM to successfully be projected as an Azure Arc enabled server, the script will:

    1. Festlegen von lokalen Betriebssystemumgebungsvariablen.Set local OS environment variables.

    2. Generieren eines lokalen Betriebssystem-Anmeldeskripts mit dem Namen LogonScript.ps1.Generate a local OS sign-in script named LogonScript.ps1. Mit diesem Skript werden folgende Vorgänge durchgeführt:This script will:

      • Die Datei LogonScript.log wird erstellt.Create the LogonScript.log file.

      • Beenden und Deaktivieren des Windows Azure-Gast-Agent-Diensts.Stop and disable the Windows Azure guest agent service.

      • Erstellen einer neuen Windows-Firewallregel, um ausgehenden Datenverkehr von Azure IMDS an die Remoteadresse 169.254.169.254 zu blockieren.Create a new Windows Firewall rule to block Azure IMDS outbound traffic to the 169.254.169.254 remote address.

      • Aufheben der Registrierung des geplanten Anmeldeskript-Windows-Tasks, damit er nach der ersten Anmeldung nicht ausgeführt werden kann.Unregister the sign-in script Windows scheduled task so it won't run after first sign-in.

    3. Deaktivieren des Windows Server-Managers und Verhindern seiner Ausführung beim Start.Disable and prevent Windows Server Manager from running on startup.

  4. Ein Benutzer stellt über RDP eine Verbindung mit dem virtuellen Windows-Computer her, der die Ausführung von LogonScript.ps1 startet und die VM in Azure Arc integriert.A user connects via RDP to the Windows VM, which starts running LogonScript.ps1 and onboards the VM to Azure Arc.

BereitstellungDeployment

Wie zuvor erwähnt, werden bei dieser Bereitstellung ARM-Vorlagen verwendet.As mentioned, this deployment will use ARM templates. Sie stellen eine einzelne Vorlage bereit, mit der alle Azure-Ressourcen in einer einzelnen Ressourcengruppe erstellt werden und die erstellte VM in Azure Arc integriert wird.You will deploy a single template, responsible for creating all the Azure resources in a single resource group and onboarding the created VM to Azure Arc.

  1. Melden Sie sich vor dem Bereitstellen der ARM-Vorlage über Azure CLI mit dem Befehl az login an.Before deploying the ARM template, sign in to Azure using Azure CLI with the az login command.

  2. Bei der Bereitstellung wird die Parameterdatei der ARM-Vorlage verwendet.The deployment is using the ARM template parameters file. Bearbeiten Sie vor dem Initiieren der Bereitstellung die Datei azuredeploy.parameters.json im Ordner des lokalen geklonten Repositorys.Before initiating the deployment, edit the azuredeploy.parameters.json file located in your local cloned repository folder. Eine Beispielparameterdatei finden Sie hier.An example parameters file is located here.

  3. Navigieren Sie zum Bereitstellen der ARM-Vorlage zum lokalen geklonten Bereitstellungsordner, und führen Sie den folgenden Befehl aus:To deploy the ARM template, navigate to the local cloned deployment folder and run the following command:

    az group create --name <Name of the Azure resource group> --location <Azure Region> --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group <Name of the Azure resource group> \
    --name <The name of this deployment> \
    --template-uri https://raw.githubusercontent.com/microsoft/azure-arc/main/azure_arc_servers_jumpstart/azure/windows/arm_template/azuredeploy.json \
    --parameters <The `azuredeploy.parameters.json` parameters file location>
    

    Hinweis

    Verwenden Sie unbedingt denselben Azure-Ressourcengruppennamen, der in der Datei azuredeploy.parameters.json verwendet wurde.Make sure that you are using the same Azure resource group name as the one you used in the azuredeploy.parameters.json file.

    Beispiel:For example:

    az group create --name Arc-Servers-Win-Demo --location "East US" --tags "Project=jumpstart_azure_arc_servers"
    az deployment group create \
    --resource-group Arc-Servers-Win-Demo \
    --name arcwinsrvdemo \
    --template-uri https://raw.githubusercontent.com/microsoft/azure-arc/main/azure_arc_servers_jumpstart/azure/windows/arm_template/azuredeploy.json \
    --parameters azuredeploy.parameters.json
    
  4. Nachdem die Azure-Ressourcen bereitgestellt wurden, werden sie im Azure-Portal angezeigt.Once the Azure resources have been provisioned, you can see them in the Azure portal.

    Screenshot: Ausgabe einer ARM-Vorlage.

    Screenshot: Ressourcen in der Ressourcengruppe.

Windows-Anmeldung und Vorgehensweise nach der BereitstellungWindows sign-in and post-deployment

  1. Nachdem die Windows Server-VM erstellt wurde, wird im nächsten Schritt eine Verbindung mit ihr hergestellt.Now that the Windows Server VM is created, the next step is connecting it. Verwenden Sie die zugehörige öffentliche IP-Adresse, um eine RDP-Verbindung mit der VM herzustellen.Using its public IP address, RDP to the VM.

    Screenshot: öffentliche IP-Adresse einer Azure-VM.

  2. Bei der ersten Anmeldung wird wie im Abschnitt Automatisierungsflow beschrieben ein Anmeldeskript ausgeführt.Upon first sign-in, as mentioned in the Automation flow section, a sign-in script will get executed. Dieses Skript wird als Teil des automatisierten Bereitstellungsprozesses erstellt.This script is created as part of the automated deployment process.

  3. Führen Sie das Skript aus, und schließen Sie die PowerShell-Sitzung nicht.Let the script run and do not close the PowerShell session. Die Sitzung wird nach Abschluss des Vorgangs automatisch geschlossen.The session closes for you automatically once completed.

    Hinweis

    Die Ausführungszeit des Skripts beträgt ca. 1-2 Minuten.The script run time is ~1-2 minutes long.

    Screenshot: eine Möglichkeit der Skriptausgabe.

    Screenshot: zweite Möglichkeit der Skriptausgabe.

    Screenshot: dritte Möglichkeit der Skriptausgabe.

    Screenshot: vierte Möglichkeit der Skriptausgabe.

  4. Nach erfolgreichem Abschluss wird ein neuer Server mit Azure Arc-Unterstützung der Ressourcengruppe hinzugefügt.Upon successful completion, a new Azure Arc enabled server will be added to the resource group.

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

Screenshot: Details eines Servers mit Azure Arc-Unterstützung.

CleanupCleanup

Zum Löschen der gesamten Bereitstellung löschen Sie die Ressourcengruppe im Azure-Portal.To delete the entire deployment, delete the resource group from the Azure portal.

Screenshot: Löschen der Ressourcengruppe.