Verwenden von VMware PowerCLI, um das Onboarding von VMware vSphere-VMs unter Linux in Azure Arc zu skalierenUse VMware PowerCLI to scale onboarding VMware vSphere Linux virtual machines to Azure Arc

Dieser Artikel enthält eine Anleitung zur Verwendung des bereitgestellten VMware PowerCLI-Skripts, um eine automatisierte skalierte Bereitstellung des Azure Arc Connected Machine-Agents auf mehreren VMware vSphere-VMs durchzuführen. Durch diesen Vorgang werden diese VMs als Server mit Azure Arc-Unterstützung hinzugefügt.This article provides guidance for using the provided VMware PowerCLI script so you can perform an automated scaled deployment of the Azure Arc connected machine agent in multiple VMware vSphere virtual machines and as a result, onboarding these VMs as an Azure Arc enabled servers.

In dieser Anleitung wird davon ausgegangen, dass Sie bereits über einen bestehenden Bestand an virtuellen VMware-Computern verfügen. Zur Automatisierung des VM-Onboardings in Azure Arc wird das PowerCLI PowerShell-Modul verwendet.This guide assumes you already have an exiting inventory of VMware virtual machines and will use the PowerCLI PowerShell module to automate the onboarding process of the VMs to Azure Arc.

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 Version 2.7 oder höher.Install or update Azure CLI to version 2.7 and above. Verwenden Sie den folgenden Befehl, um die aktuell installierte Version zu überprüfen.Use the following command to check your current installed version.

    az --version
    
  3. Installieren Sie VMware PowerCLI.Install VMware PowerCLI.

    Hinweis

    Dieser Leitfaden wurde mit der neuesten Version von PowerCLI (zum Zeitpunkt der Veröffentlichung Version 12.0.0) getestet, frühere Versionen sollten jedoch ebenfalls funktionieren.This guide was tested with the latest version of PowerCLI as of publication (12.0.0), but earlier versions are expected to work as well.

    • Unterstützte PowerShell-Versionen: VMware PowerCLI 12.0.0 ist mit den folgenden PowerShell-Versionen kompatibel:Supported PowerShell versions: VMware PowerCLI 12.0.0 is compatible with the following PowerShell versions:
      • Windows PowerShell 5.1Windows PowerShell 5.1

      • PowerShell 7PowerShell 7

      • Ausführliche Installationsanweisungen finden Sie hier. Die einfachste Möglichkeit ist jedoch, das VMware.PowerCLI-Modul aus dem PowerShell-Katalog mit dem folgenden Befehl zu verwenden.Detailed installation instructions can be found here but the easiest way is to use the VMware.PowerCLI module from the PowerShell gallery using the following command.

        Install-Module -Name VMware.PowerCLI
        
  4. Um den VM-Bestand aus vCenter lesen und ein Skript auf VM-Betriebssystemebene aufrufen zu können, sind die folgenden Berechtigungen erforderlich:To be able to read the VM inventory from vCenter as well as invoke a script on the VM OS level, the following permissions are needed:

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

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

Der Automatisierungsflow für dieses Szenario umfasst die folgenden Schritte:The automation flow for this scenario includes these steps:

  1. Bearbeiten Sie das PowerCLI-Skript vars.ps1.Edit the vars.ps1 PowerCLI script.

  2. Bei Ausführung des PowerShell-Skripts scale-deploy.ps1:Upon execution of the scale-deploy.ps1 PowerShell script:

    • Das Skript generiert automatisch ein vars.sh-Shellskript mit den Azure-Umgebungsvariablen des Benutzers.The script will auto-generate a vars.sh shell script with the user's Azure environment variables.

    • Durch die Skriptausführung wird die Authentifizierung gegenüber vCenter initiiert. Außerdem wird der VM-Zielordner überprüft, in dem sich VM-Kandidaten für Azure Arc befinden. Sowohl das automatisch generierte vars.sh- als auch das install_azure_arc_agent.sh-Shellskript wird für jede Linux-VM in /vmware/scaled-deploy/powercli/linux kopiert.The script execution will initiate authentication against vCenter and will scan the targeted VM folder where Azure Arc candidate VMs are located and will copy both the auto-generated vars.sh and the install_azure_arc_agent.sh shell scripts to VM Linux OS located in /vmware/scaled-deploy/powercli/linux to each VM in that VM folder.

  3. Das install_azure_arc_agent.sh-Shellskript wird für das VM-Gastbetriebssystem ausgeführt. Dieses Skript installiert den Connected Machine-Agent für Azure Arc, um das Onboarding der VM in Azure Arc durchzuführen.The install_azure_arc_agent.sh shell script will run on the VM guest OS and will install the Azure Arc connected machine agent in order to onboard the VM to Azure Arc.

Vor der BereitstellungPredeployment

Um die Unterschiede vor und nach dem Ausführen dieser Schritte zu veranschaulichen, zeigen die Screenshots unten eine dedizierte leere Azure-Ressourcengruppe, einen vCenter-VM-Ordner mit Kandidaten-VMs und das Verzeichnis /var/opt/ ohne installierten Agent.To demonstrate the before and after for this scenario, the below screenshots shows a dedicated, empty Azure resource group, a vCenter VM folder with candidate VMs and the /var/opt/ directory showing no agent is installed.

Screenshot einer leeren Azure-Ressourcengruppe.

Screenshot einer einfachen VMware vSphere-VM ohne Azure Arc-Agent.

Weiterer Screenshot einer einfachen VMware vSphere-VM ohne Azure Arc-Agent.

BereitstellungDeployment

Bevor Sie das PowerCLI-Skript ausführen, müssen Sie die Umgebungsvariablen festlegen, die vom install_azure_arc_agent.sh-Skript verwendet werden.Before running the PowerCLI script, you must set the environment variables which will be used by the install_azure_arc_agent.sh script. Diese Variablen basieren auf dem Azure-Dienstprinzipal, den Sie soeben erstellt haben, Ihrem Azure-Abonnement und -Mandanten sowie Ihren VMware vSphere-Anmeldeinformationen und -Daten.These variables are based on the Azure service principal you've just created, your Azure subscription and tenant, and your VMware vSphere credentials and data.

  • 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

  • Verwenden Sie die Azure-Dienstprinzipal-ID und das Kennwort, die bzw. das Sie im Abschnitt zu den Voraussetzungen erstellt haben:Use the Azure service principal ID and password created in the prerequisites section:

    Screenshot des Exports von Umgebungsvariablen.

  • Öffnen Sie im Ordner azure_arc_servers_jumpstart\vmware\scaled-deploy\powercli\linux eine PowerShell-Sitzung als Administrator, und führen Sie das Skript scale-deploy.ps1 aus.From the azure_arc_servers_jumpstart\vmware\scaled-deploy\powercli\linux folder, open a PowerShell session as an administrator and run the scale-deploy.ps1 script.

    Screenshot von scale_deploy.ps1.

    Ein zweiter Screenshot von scale_deploy.ps1.

    Ein dritter Screenshot von scale_deploy.ps1.

  • Sobald der Vorgang abgeschlossen ist, ist der Connected Machine-Agent für Azure Arc auf der VM installiert. Außerdem ist die Azure-Ressourcengruppe mit den neuen Servern mit Azure Arc-Unterstützung gefüllt.Upon completion, the VM will have the Azure Arc connected machine agent installed as well as the Azure resource group populated with the new Azure Arc enabled servers.

    Screenshot einer VM mit installiertem Azure Arc-Agent.

    Screenshot neuer Server mit Azure Arc-Unterstützung in einer Azure-Ressourcengruppe.

    Weiterer Screenshot neuer Server mit Azure Arc-Unterstützung in einer Azure-Ressourcengruppe.