Freigeben über


Verwalten von VM-Ressourcen in Umgebungen

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

Eine Azure Pipelines-Umgebung ist eine Gruppe von Ressourcen , auf die Sie mit Bereitstellungen aus einer Pipeline abzielen können. Typische Umgebungen umfassen Entwicklung, Test oder Produktion.

Um physische oder virtuelle Computerressourcen (VM) zu Umgebungen hinzuzufügen, installieren Sie Agents auf den Computern. Der Bereitstellungsverlauf der Umgebung stellt dann die Rückverfolgbarkeit von jedem Computer bereit. In diesem Artikel wird beschrieben, wie Sie Umgebungen definieren und verwenden, um Bereitstellungen über VM- oder Serverressourcen hinweg zu verwalten.

Hinweis

Azure DevOps-Umgebungen sind nur für YAML-Pipelines verfügbar. Für klassische Pipelines bieten Bereitstellungsgruppen ähnliche Funktionen.

Voraussetzungen

Um die Verfahren in diesem Artikel auszuführen, benötigen Sie die folgenden Voraussetzungen:

  • Zugriff auf ein Quell-Repository, in dem Sie Pipelines erstellen können. Weitere Informationen finden Sie unter Unterstützte Quellrepositorys.
  • Administratorrolle für den Bereitstellungspool, die Gruppe von Zielservern, die für Ihre Azure DevOps-Organisation verfügbar sind. Weitere Informationen finden Sie unter Festlegen der Sicherheit von Bereitstellungsgruppen in Azure Pipelines.
  • Projektadministrator- oder Buildadministratorberechtigungen im Azure DevOps-Projekt, das die Umgebung enthält. Weitere Informationen finden Sie unter Ressourcensicherheit.
  • Zugriff und Berechtigung zum Herunterladen und Ausführen von ausführbaren Skripts auf virtuellen Computern, die Sie mit der Umgebung verbinden möchten.

Erstellen einer Umgebung und Hinzufügen eines virtuellen Computers

Verwenden Sie das folgende Verfahren, um einer Umgebung einen virtuellen Computer oder einen physischen Computer hinzuzufügen.

Erstellen der Umgebung mit einer VM-Ressource

  1. Navigieren Sie im Azure DevOps-Projekt zu Pipelines>Umgebungen. Wählen Sie dann Umgebung erstellen oder Neue Umgebung aus.

  2. Geben Sie auf dem Bildschirm "Neue Umgebung " einen Namen und eine optionale Beschreibung ein.

  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. Sie benötigen den PAT nur, um den Agent zu installieren.

Hinweis

Um einen Bereitstellungsgruppen-Agent zu konfigurieren, oder wenn beim Registrieren der VM-Umgebungsressource ein Fehler auftritt, versuchen Sie, ihren PAT-Zugriffsbereich auf alle barrierefreien Organisationen in Den Benutzereinstellungen>persönliche Zugriffstoken festzulegen.

  1. Wählen Sie auf dem Ressourcenbildschirm des virtuellen Computers Unter Betriebssystem Linux aus.

  2. Wählen Sie das Symbol aus, um das Linux-Registrierungsskript zu kopieren.

    Screenshot, der das Hinzufügen eines virtuellen Linux-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 Registrierungsskripts auf der VM

  1. Wählen Sie "Schließen" aus. Die neue Umgebung wird erstellt. Wenn Sie das Skript erneut kopieren möchten, z. B. wenn Ihr PAT abläuft, wählen Sie " Ressource erneut hinzufügen " auf der Seite der Umgebung 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 der virtuelle Computer bereits über einen anderen Agent verfügt, der darauf ausgeführt wird, geben Sie einen eindeutigen Namen für die neu agent zu registrierende Umgebung an.

  3. Überprüfen Sie nach der Registrierung des virtuellen Computers, ob sie auf der Registerkarte "Ressourcen " der Azure-Pipelines-Umgebungsseite angezeigt wird.

    Screenshot der Registerkarte

Verwenden von Umgebungen in YAML-Pipelines

Sie können VM-Ressourcen in Ihren YAML-Bereitstellungsaufträgen als Ziel verwenden, indem Sie auf ihre Umgebung verweisen. Weitere Informationen zu YAML-Bereitstellungsaufträgen finden Sie unter Bereitstellungsaufträge und der Definition "jobs.deployment " in der SCHEMAreferenz für YAML-Pipelines.

Der folgende Pipelinebereitstellungsauftrag wird nur auf virtuellen Computern in der VMEnv Umgebung ausgeführt.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VMenv
  environment: VMenv
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Sie können auf einen bestimmten virtuellen Computer in der Umgebung abzielen, indem Sie den Namen der VM-Ressource an den Umgebungsnamen anfügen. Im folgenden Beispiel wird nur die VM-Ressource bereitgestellt, die in der RESOURCE-PC Umgebung benannt istVMenv.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

Sie können auch die vollständige Syntax des Schlüsselworts "jobs-deployment-environment " verwenden und in bestimmten Umgebungs-VMs bereitstellen, indem Sie sie auflisten resourceName.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to RESOURCE-PC in VMenv with full syntax
  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"

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.
  • Wenn Sie eine Phase wiederholen, wird die Bereitstellung auf allen angegebenen virtuellen Computern erneut ausgeführt, nicht nur bei fehlgeschlagenen Zielen.

Bereitstellungsstrategie

In einem Bereitstellungsauftrag wenden Sie eine Bereitstellung strategy an, 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.

Erlaubnisse

Wenn Sie die Pipeline zum ersten Mal ausführen, die die Umgebung verwendet, müssen Sie allen Ausführungsläufen der Pipeline berechtigungen erteilen, um auf den Agentpool und die Umgebung zuzugreifen. Wählen Sie das Wartesymbol neben dem Auftrag auf dem Bildschirm "Zusammenfassung " der Pipelineausführung aus, und wählen Sie dann "Zulassen" aus, um die erforderlichen Berechtigungen zu erteilen.

Hinzufügen und Verwalten von Tags

Tags sind eine Möglichkeit, eine bestimmte Gruppe von Umgebungs-VMs für die Bereitstellung zu verwenden. Wenn Sie im tags Schlüsselwort angebenenvironment, wird die Pipeline nur für Umgebungs-VMs bereitgestellt, auf die die Tags angewendet wurden.

Es gibt keine Beschränkung auf die Anzahl der Tags, die Sie auf VMs anwenden können. Tagnamen sind jeweils auf 256 Zeichen beschränkt.

Sie können Tags anwenden oder entfernen, indem Sie das Symbol " Weitere Aktionen " neben der VM auf der Registerkarte " Ressourcen " der Umgebung auswählen.

Screenshot, der das Festlegen von VM-Tags auf der Benutzeroberfläche zeigt.

Sie können Tags auch interaktiv anwenden, wenn Sie das Agent-Skript auf der VM registrieren.

Screenshot, der das Festlegen von VM-Tags im interaktiven Skript zeigt.

Wenn Sie mehrere Tags angeben, wird die Pipeline nur für VMs bereitgestellt, die alle Tags enthalten. Das folgende Beispiel zielt nur auf VMs ab, die sowohl über die windows als prod auch über Tags verfügen. Die Pipeline wird nicht für VMs mit nur einem oder keiner der Tags bereitgestellt.

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"

Anzeigen des Bereitstellungsverlaufs

Wählen Sie die Registerkarte "Bereitstellungen" der Umgebungsseite aus, um die vollständige Rückverfolgbarkeit von Commits und Arbeitsaufgaben sowie einen pipelineübergreifenden Bereitstellungsverlauf pro Umgebung und Ressource zu ermitteln.

Screenshot der Ansicht

Entfernen eines virtuellen Computers aus einer Umgebung

Um einen virtuellen Computer aus einer Linux-Umgebung zu entfernen, führen Sie den folgenden Befehl auf dem Computer aus.

./config.sh remove