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
Navigieren Sie im Azure DevOps-Projekt zu Pipelines>Umgebungen. Wählen Sie dann Umgebung erstellen oder Neue Umgebung aus.
Fügen Sie auf dem ersten Bildschirm "Neue Umgebung " einen Namen und eine optionale Beschreibung hinzu.
Wählen Sie unter "Ressource" die Option "Virtuelle Computer" und dann "Weiter" aus.
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.
Wählen Sie auf dem nächsten Bildschirm "Neue Umgebung " die Option "Linux" unter "Betriebssystem" aus.
Kopieren Sie das Linux-Registrierungsskript.
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
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.
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.
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 resourceName
registriert 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 resourceName
angeben. 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.
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.
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