Verwenden von VMware PowerCLI, um das Onboarding von VMware vSphere-VMs unter Linux in Azure Arc zu skalieren

Dieser Artikel enthält einen Leitfaden zur Verwendung des bereitgestellten VMware PowerCLI-Skripts, um eine automatisierte skalierte Bereitstellung des Connected Machine-Agents für Azure Arc auf mehreren VMware vSphere-VMs durchzuführen. Durch diesen Vorgang werden diese VMs als Server mit Azure Arc-Unterstützung hinzugefügt.

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.

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

    • Unterstützte PowerShell-Versionen: VMware PowerCLI 12.0.0 ist mit den folgenden PowerShell-Versionen kompatibel:
      • Windows PowerShell 5.1

      • PowerShell 7

      • Ausführliche Installationsanweisungen finden Sie unter Installieren von PowerCLI. Die einfachste Möglichkeit ist jedoch, das VMware.PowerCLI-Modul aus dem PowerShell-Katalog mit dem folgenden Befehl zu verwenden.

        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:

  5. Erstellen Sie einen Azure-Dienstprinzipal.

    Um die VMware vSphere-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://AzureArcServers" --role contributor --scopes "/subscriptions/00000000-0000-0000-0000-000000000000"
    

    Die Ausgabe sollte wie folgt aussehen:

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

Automatisierungsflow

Der Automatisierungsflow für dieses Szenario umfasst die folgenden Schritte:

  1. Bearbeiten Sie das PowerCLI-Skript vars.ps1.

  2. Bei Ausführung des PowerShell-Skripts scale-deploy.ps1:

    • Das Skript generiert automatisch ein vars.sh-Shellskript mit den Azure-Umgebungsvariablen des Benutzers.

    • 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.

  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.

Vor der Bereitstellung

Um die Unterschiede vor und nach dem Ausführen dieser Schritte zu veranschaulichen, zeigen die folgenden Screenshots eine dedizierte leere Azure-Ressourcengruppe, einen vCenter-VM-Ordner mit möglichen VMs und das Verzeichnis /var/opt/ ohne installierten Agent.

Screenshot of an empty Azure resource group.

A screenshot of a vanilla VMware vSphere virtual machine without an Azure Arc agent.

Another screenshot of a vanilla VMware vSphere virtual machine without an Azure Arc agent.

Bereitstellung

Bevor Sie das PowerCLI-Skript ausführen, müssen Sie die Umgebungsvariablen festlegen, die vom install_azure_arc_agent.sh-Skript verwendet werden. Diese Variablen basieren auf dem Azure-Dienstprinzipal, den Sie soeben erstellt haben, Ihrem Azure-Abonnement und -Mandanten sowie Ihren VMware vSphere-Anmeldeinformationen und -Daten.

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

  • Verwenden Sie die Azure-Dienstprinzipal-ID und das Kennwort, die bzw. das Sie im Abschnitt zu den Voraussetzungen erstellt haben:

    A screenshot of exporting environment variables.

  • Ö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.

    A screenshot of scale_deploy.ps1.

    A second screenshot of scale_deploy.ps1.

    A third screenshot of scale_deploy.ps1.

  • Nachdem der Vorgang abgeschlossen ist, ist der Connected Machine-Agent für Azure Arc auf der VM installiert. Außerdem enthält die Azure-Ressourcengruppe die neuen Server mit Azure Arc-Unterstützung.

    A screenshot of a machine with an Azure Arc agent installed.

    A screenshot of new Azure Arc-enabled servers in an Azure resource group.

    Another screenshot of new Azure Arc-enabled servers in an Azure resource group.