Verwalten von VM-Ressourcen in Umgebungen

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

In diesem Artikel wird beschrieben, wie Sie VM-Ressourcen (Virtual Machine) in Umgebungen verwenden, um Azure Pipelines-Bereitstellungen auf mehreren Computern zu verwalten. Sie können Agents auch auf Ihren eigenen Servern für rollierende Bereitstellungen installieren.

VM-Ressourcen können in Umgebungen wie Entwicklung, Test oder Produktion vorhanden sein. Nachdem Sie eine Umgebung definiert haben, können Sie VMs mit Bereitstellungen zum Ziel hinzufügen. Der Bereitstellungsverlauf der Umgebung bietet Rückverfolgbarkeit von jedem virtuellen Computer zu Ihrer Pipeline.

Voraussetzungen

  • Zugriff auf ein Quell-Repository, das mit Ihrer Pipeline verbunden ist.
  • Zugriff und Berechtigung zum Herunterladen und Ausführen von ausführbaren Skripts auf den virtuellen Computern, die Sie mit der Umgebung verbinden möchten.
  • Projektadministrator- oder Buildadministratorberechtigungen im Azure DevOps-Projekt, das die Umgebung enthält. Weitere Informationen finden Sie unter Pipelinesicherheitsressourcen.
  • Administratorrolle für den Bereitstellungspool oder eine Gruppe von Zielservern, die für die Organisation verfügbar sind. Weitere Informationen finden Sie unter Bereitstellungspool- und Umgebungsberechtigungen.

Hinweis

Um einen Bereitstellungsgruppen-Agent zu konfigurieren, oder wenn beim Registrieren einer VM-Umgebungsressource ein Fehler angezeigt wird, stellen Sie sicher, dass Sie den Bereich ihres persönlichen Zugriffstokens (PAT) auf "Alle zugänglichen Organisationen" festlegen.

Erstellen der Umgebung

Verwenden Sie das folgende Verfahren, um einer Umgebung eine VM-Ressource hinzuzufügen. Sie können denselben Prozess verwenden, um physische Computer einzurichten.

Hinzufügen einer VM-Ressource

  1. Wechseln Sie in Ihrem Azure DevOps-Projekt zu Pipelines-Umgebungen>, und wählen Sie dann "Umgebung erstellen" oder "Neue Umgebung" aus.

  2. Fügen Sie auf dem ersten Bildschirm "Neue Umgebung " einen Namen und eine optionale Beschreibung hinzu.

  3. Wählen Sie unter "Ressource" die Option "Virtuelle Computer" und dann "Weiter" aus.

    Screenshot, der das Hinzufügen einer Umgebung zeigt.

Kopieren des Registrierungsskripts

Die Agentskripts für VM-Ressourcen sind wie die Skripts für selbst gehostete Agents und verwenden dieselben Befehle. Die Skripts enthalten ein Azure DevOps Personal Access Token (PAT) für den angemeldeten Benutzer, der drei Stunden nach dem Generieren des Skripts abläuft.

  1. Wählen Sie auf dem nächsten Bildschirm "Neue Umgebung " die Option "Linux" unter "Betriebssystem" aus.

  2. Kopieren Sie das Linux-Registrierungsskript.

    Screenshot, der das Hinzufügen eines virtuellen Computers zeigt.

Das Skript ist für alle Linux-VMs identisch, die der Umgebung hinzugefügt wurden. Weitere Informationen zum Installieren des Agent-Skripts finden Sie unter Selbst gehostete Linux-Agents.

Ausführen des kopierten Skripts

  1. Wählen Sie "Schließen" aus, und beachten Sie, dass die neue Umgebung erstellt wird. Wenn Sie das Skript erneut kopieren möchten, z. B. wenn Ihr PAT abläuft, wählen Sie "Ressource hinzufügen" aus.

    Screenshot der nachricht

  2. Führen Sie das kopierte Skript auf jeder Ziel-VM aus, die Sie bei der Umgebung registrieren möchten.

    Hinweis

    Wenn auf dem virtuellen Computer bereits ein anderer Agent ausgeführt wird, geben Sie einen eindeutigen Namen für den Agent für die Registrierung bei der Umgebung an.

Nachdem der virtuelle Computer registriert wurde, wird er als Ressource auf der Registerkarte "Ressourcen " der Umgebung angezeigt.

Screenshot der Registerkarte

Verwenden von virtuellen Computern in Pipelines

In Ihrer YAML-Pipeline können Sie auf VMs abzielen, indem Sie auf ihre Umgebung verweisen. Standardmäßig zielt der Auftrag auf alle virtuellen Computer ab, die für die Umgebung resourceNameregistriert sind.

Hinweis

Wenn Sie eine Phase wiederholen, wird die Bereitstellung auf allen virtuellen Computern erneut ausgeführt, nicht nur fehlgeschlagene Ziele.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
   name: VMenv
   resourceName: VMenv
   resourceType: virtualMachine
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Hinweis

Bei resourceType den Werten wie virtualMachine bei der Groß-/Kleinschreibung wird die Groß-/Kleinschreibung beachtet. Falsche Groß-/Kleinschreibung führt zu keine übereinstimmenden Ressourcen.

Sie können in bestimmten virtuellen Computern in der Umgebung bereitstellen, indem Sie sie in resourceNameangeben. Im folgenden Beispiel wird nur die VM-Ressource bereitgestellt, die in der VMenv Umgebung benannt istRESOURCE-PC.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Weitere Informationen zu YaML-Pipelinebereitstellungsaufträgen finden Sie im YAML-Pipelineschema.

Hinzufügen und Verwalten von Tags

Tags sind eine Möglichkeit, eine bestimmte Gruppe von virtuellen Computern in einer Umgebung für die Bereitstellung zu adressieren. Tags sind jeweils auf 256 Zeichen beschränkt. Sie können eine unbegrenzte Anzahl an Tags verwenden.

Sie können Tags hinzufügen oder Tags für VMs im interaktiven Registrierungsskript oder über die Benutzeroberfläche entfernen, indem Sie "Weitere Aktionen" für eine VM-Ressource auswählen.

Screenshot, der das Festlegen von VM-Tags zeigt.

Wenn Sie mehrere Tags angeben, verwendet die Pipeline nur VMs, die alle Tags enthalten. Das folgende Beispiel zielt nur auf VMs ab, die sowohl über die windows als prod auch über Tags verfügen. VMs mit nur einem oder keiner der Tags sind nicht darauf ausgerichtet.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to VMs with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Anwenden einer Bereitstellungsstrategie

Sie können eine Bereitstellung strategy anwenden, um zu definieren, wie Sie Ihre Anwendung bereitstellen. VMs unterstützen sowohl die runOnce Strategien als auch die rolling Strategien. Weitere Informationen zu Bereitstellungsstrategien und Lebenszyklus-Hooks finden Sie unter Bereitstellungsstrategien.

Anzeigen des Bereitstellungsverlaufs

Wählen Sie die Registerkarte Bereitstellungen aus, damit Sie die Commits und Arbeitselemente komplett nachverfolgen und einen pipelineübergreifenden Bereitstellungsverlauf für jede Umgebung und Ressource anzeigen können.

Screenshot der Ansicht

Entfernen eines virtuellen Computers aus einer Umgebung

Führen Sie den folgenden Befehl auf jedem Computer aus, um einen virtuellen Computer aus einer Linux-Umgebung zu entfernen.

./config.sh remove