Erstellen und Zielumgebungen
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
In diesem Artikel wird erläutert, wie Sie Azure Pipelines-Umgebungen erstellen und als Ziel festlegen. Eine Umgebung ist eine Sammlung von Ressourcen, die Sie mit Bereitstellungen aus einer Pipeline als Ziel verwenden können.
Eine Umgebung stellt ein logisches Ziel dar, in dem Ihre Pipeline Software bereitstellt. Typische Umgebungsnamen sind Dev, Test, QA, Staging und Production.
Hinweis
Azure DevOps-Umgebungen sind in klassischen Pipelines nicht verfügbar. Für klassische Pipelines bieten Bereitstellungsgruppen ähnliche Funktionen.
Umgebungen bieten die folgenden Vorteile:
Bereitstellungsverlauf. Der Pipelinename und die Ausführungsdetails werden für Bereitstellungen in einer Umgebung und deren Ressourcen aufgezeichnet. Im Kontext mehrerer Pipelines, die auf dieselbe Umgebung oder Ressource abzielen, können Sie den Bereitstellungsverlauf einer Umgebung verwenden, um die Quelle der Änderungen zu identifizieren.
Rückverfolgbarkeit von Commits und Arbeitsaufgaben. Sie können Aufträge innerhalb der Pipeline anzeigen, die auf eine Umgebung abzielen. Sie können auch die Commits und Arbeitselemente anzeigen, die neu in der Umgebung bereitgestellt wurden. Mithilfe der Rückverfolgbarkeit können Sie auch nachverfolgen, ob eine Codeänderung commit oder eine Feature-/Fehlerkorrektur-Arbeitsaufgabe eine Umgebung erreicht hat.
Diagnoseressourcenintegrität. Sie können überprüfen, ob die Anwendung im gewünschten Zustand funktioniert.
Sicherheit: Sie können Umgebungen schützen, indem Sie angeben, welche Benutzer und Pipelines auf eine Umgebung abzielen dürfen.
Eine Umgebung ist eine Gruppierung von Ressourcen, in denen die Ressourcen selbst tatsächliche Bereitstellungsziele darstellen. Azure Pipelines-Umgebungen unterstützen derzeit die Kubernetes - und virtuellen Computerressourcentypen .
Wenn eine YAML-Pipeline auf eine Umgebung verweist, die nicht vorhanden ist:
Wenn der Benutzer, der den Vorgang ausführt, bekannt ist und Berechtigungen zugewiesen werden können, erstellt Azure Pipelines automatisch die Umgebung.
Wenn Azure Pipelines keine Informationen über den Benutzer hat, der den Vorgang ausführt, z. B. in einem YAML-Update aus einem externen Code-Editor, schlägt die Pipeline fehl.
Voraussetzungen
Um eine Umgebung hinzuzufügen, benötigen Sie die folgenden Voraussetzungen:
- Eine Azure DevOps-Organisation und ein entsprechendes Projekt.
- Die Creator-Rolle für Umgebungen in Ihrem Projekt.
Erstellen einer Umgebung
So erstellen Sie Ihre erste Umgebung:
Melden Sie sich bei Ihrer Azure DevOps-Organisation an
https://dev.azure.com/{yourorganization}
, und öffnen Sie Ihr Projekt.Wählen Sie Pipelines>Umgebungen>Umgebung erstellen aus.
Geben Sie Informationen für die Umgebung ein, und wählen Sie dann Erstellen aus. Sie können einer vorhandenen Umgebung später Ressourcen hinzufügen.
Tipp
Sie können eine leere Umgebung erstellen und anhand von Bereitstellungsaufträgen darauf verweisen, damit Sie den Bereitstellungsverlauf für die Umgebung aufzeichnen können.
Sie können Azure Pipelines verwenden, um sie in Umgebungen bereitzustellen. Weitere Informationen finden Sie unter Erstellen und Bereitstellen von Azure Kubernetes Service mit Azure Pipelines.
Verwenden einer Umgebung aus einem Bereitstellungsauftrag als Ziel
Ein Bereitstellungsauftrag ist eine Sammlung von Schritten, die sequenziell ausgeführt werden. Sie können einen Bereitstellungsauftrag verwenden, um eine gesamte Umgebungsgruppe von Ressourcen als Ziel zu verwenden, wie im folgenden Beispiel-YAML-Codeausschnitt gezeigt. Die Pipeline wird auf dem myVM
Computer ausgeführt, da dieser Ressourcenname angegeben ist.
- stage: deploy
jobs:
- deployment: DeployWeb
displayName: deploy Web App
pool:
vmImage: 'Ubuntu-latest'
# creates an environment if it doesn't exist
environment:
name: 'smarthotel-dev'
resourceName: myVM
resourceType: virtualMachine
strategy:
runOnce:
deploy:
steps:
- script: echo Hello world
Ziel einer bestimmten Umgebungsressource aus einem Bereitstellungsauftrag
Sie können das Bereitstellungsziel auf eine bestimmte Ressource innerhalb der Umgebung festlegen, sodass Sie den Bereitstellungsverlauf für die jeweilige Ressource aufzeichnen können. Die Schritte des Bereitstellungsauftrags erben automatisch die Dienstverbindungsdetails von der Ressource, auf die der Bereitstellungsauftrag abzielt.
Im folgenden Beispiel wird der Wert für den kubernetesServiceConnection
Vorgang automatisch von der Eingabe an die environment.resource
Aufgabe übergeben.
environment:
name: 'smarthotel-dev.bookings'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
namespace: $(k8sNamespace)
manifests: $(System.ArtifactsDirectory)/manifests/*
imagePullSecrets: $(imagePullSecret)
containers: $(containerRegistry)/$(imageRepository):$(tag)
Hinweis
Wenn Sie einen privaten AKS-Cluster verwenden, stellen Sie sicher, dass Sie mit dem virtuellen Netzwerk des Clusters verbunden sind, da der API-Serverendpunkt nicht über eine öffentliche IP-Adresse verfügbar gemacht wird.
Azure Pipelines empfiehlt, einen selbst gehosteten Agent in einem VNET einzurichten, der Zugriff auf das virtuelle Netzwerk des Clusters hat. Weitere Informationen finden Sie unter "Optionen" zum Herstellen einer Verbindung mit dem privaten Cluster .
Manuelle Genehmigungsprüfungen verwenden
Um Bereitstellungen in Produktionsumgebungen zu steuern, unterstützt Azure Pipelines manuelle Genehmigungsprüfungen in Umgebungen. Genehmigungsprüfungen stehen Ressourcenbesitzern zur Verfügung, um zu steuern, wann eine Phase in einer Pipeline die Ressource verbraucht. Ressourcenbesitzer können Genehmigungen und Überprüfungen definieren, die erfüllt sein müssen, bevor eine Phase mit der Nutzung dieser Ressource beginnen kann.
Die Rollen "Ersteller", "Administrator" und "Benutzer", aber nicht die Rolle "Leser" können Genehmigungen und Prüfungen verwalten. Als Umgebungsbesitzer können Sie manuell steuern, wann eine Phase mithilfe von Genehmigungsprüfungen ausgeführt werden soll. Weitere Informationen finden Sie unter Definieren von Genehmigungen und Überprüfungen.
Anzeigen von Umgebungen in Ausführungsdetails
Unter der Registerkarte "Umgebungen" der Pipelineausführungsdetails können Sie alle Umgebungen sehen, die von Bereitstellungsaufträgen einer Pipelineausführung bestimmt wurden.
Hinweis
Wenn Sie einen privaten Azure Kubernetes Service (AKS)-Cluster verwenden, ist die Registerkarte "Umgebungen " nicht verfügbar.
Anzeigen des Bereitstellungsverlaufs
Sie können die Registerkarte "Bereitstellungen" im Abschnitt "Azure Pipelines Environments" auswählen, um den Bereitstellungsverlauf anzuzeigen.
Anzeigen von Aufträgen aus allen Pipelines, die auf eine bestimmte Umgebung abzielen. Beispielsweise können zwei Microservices, die jeweils über eine eigene Pipeline verfügen, in derselben Umgebung bereitstellen. Der Bereitstellungsverlauf hilft dabei, alle Pipelines zu identifizieren, die sich auf die Umgebung auswirken, und hilft außerdem, die Abfolge der Bereitstellungen durch jede Pipeline zu visualisieren.
Wenn Sie einen Drilldown zu den Auftragsdetails ausführen möchten, wählen Sie die Registerkarten "Änderungen " und "Arbeitselemente " auf einer Bereitstellungsseite aus. Auf den Registerkarten werden Listen mit Commits und Arbeitsaufgaben angezeigt, die in der Umgebung bereitgestellt wurden. Jedes Listenelement stellt neue Elemente in dieser Bereitstellung dar.
Auf der Registerkarte "Änderungen " enthält die erste Auflistung alle Commits zu diesem Punkt, und die folgenden Auflistungen enthalten nur die Änderungen für diesen Auftrag. Wenn mehrere Commits an denselben Auftrag gebunden sind, gibt es mehrere Ergebnisse auf der Registerkarte "Änderungen ".
Wenn mehrere Arbeitsaufgaben an denselben Auftrag gebunden sind, gibt es mehrere Ergebnisse auf der Registerkarte "Arbeitselemente ".
Sicherheit
Sie können Ihre Umgebungen schützen, indem Sie Benutzerberechtigungen und Pipelineberechtigungen festlegen.
Benutzerberechtigungen
Sie können steuern, wer Umgebungen mit Benutzerberechtigungen erstellen, anzeigen, verwenden und verwalten kann. Es gibt vier Rollen: Ersteller mit einem Bereich aller Umgebungen, Leser, Benutzer und Administrator.
Um einen Benutzer mithilfe des Benutzerberechtigungsbereichs einer Umgebung hinzuzufügen, wechseln Sie zu der spezifischen Umgebung, die Sie autorisieren möchten, wählen Sie das Symbol "Weitere Aktionen" und dann "Sicherheit" aus.
Wählen Sie im Bereich "Benutzerberechtigungen" auf der Seite "Sicherheit" die Option "Hinzufügen" und dann einen Benutzer oder eine Gruppe und eine geeignete Rolle aus.
Im Bereich "Benutzerberechtigungen" können Sie auch die geerbten Berechtigungen festlegen und die Rollen für Ihre Umgebung außer Kraft setzen.
Role | BESCHREIBUNG |
---|---|
Creator | Globale Rolle, verfügbar über die Hubsicherheitsoption für Umgebungen. Mitglieder dieser Rolle können die Umgebung im Projekt erstellen. Mitwirkende werden standardmäßig als Mitglieder hinzugefügt. Erforderlich, um eine YAML-Pipeline auszulösen, wenn die Umgebung noch nicht vorhanden ist. |
Leser | Mitglieder dieser Rolle können die Umgebung anzeigen. |
Benutzer | Mitglieder dieser Rolle können die Umgebung beim Erstellen oder Bearbeiten von YAML-Pipelines verwenden. |
Administrator | Mitglieder dieser Rolle können Berechtigungen verwalten, erstellen, leiten, anzeigen und Umgebungen verwenden. Für eine bestimmte Umgebung wird der Ersteller standardmäßig als Administrator hinzugefügt. Administratoren können auch den Zugriff auf eine Umgebung für alle Pipelines öffnen. |
Wichtig
Wenn Sie eine Umgebung erstellen, hat nur der Ersteller die Administratorrolle.
Role | BESCHREIBUNG |
---|---|
Creator | Globale Rolle, verfügbar über die Hubsicherheitsoption für Umgebungen. Mitglieder dieser Rolle können die Umgebung im Projekt erstellen. Mitwirkende werden standardmäßig als Mitglieder hinzugefügt. Erforderlich, um eine YAML-Pipeline auszulösen, wenn die Umgebung noch nicht vorhanden ist. |
Leser | Mitglieder dieser Rolle können die Umgebung anzeigen. |
Benutzer | Mitglieder dieser Rolle können die Umgebung beim Erstellen oder Bearbeiten von YAML-Pipelines verwenden. |
Administrator | Zusätzlich zur Verwendung der Umgebung können Mitglieder dieser Rolle die Mitgliedschaft aller anderen Rollen für die Umgebung verwalten. Erstellende werden standardmäßig als Mitglieder hinzugefügt. |
Pipelineberechtigungen und Sicherheitsrollen
Verwenden Sie den Bereich "Pipelineberechtigungen " der Seite "Sicherheit ", um alle oder ausgewählte Pipelines für die Bereitstellung in der Umgebung zu autorisieren.
Um den offenen Zugriff für die Umgebung oder Ressource zu entfernen, wählen Sie "Berechtigung einschränken" in Pipelineberechtigungen aus.
Wenn Berechtigungen eingeschränkt sind, können Sie bestimmten Pipelines erlauben, die Bereitstellung in der Umgebung oder in einer bestimmten Ressource zu ermöglichen. Wählen Sie aus der Liste der zuzulassenden Pipelines aus, und wählen Sie + sie aus.
Häufig gestellte Fragen
Warum erhalte ich eine Fehlermeldung, wenn ich versuche, eine Umgebung zu erstellen?
Wenn die Meldung "Zugriff verweigert" angezeigt wird: {User} benötigt "Berechtigungen erstellen", um die Aktion auszuführen, wechseln Sie zu "Organisationseinstellungen>", um zu überprüfen, ob Sie über die Rolle der Projektbeteiligten verfügen. Die Rolle der Projektbeteiligten kann keine Umgebungen erstellen, da Projektbeteiligte keinen Zugriff auf das Repository haben.
Ändern Sie Ihre Zugriffsebene, und überprüfen Sie dann, ob Sie Umgebungen erstellen können. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Benutzer- und Berechtigungsverwaltung.
Warum erhalte ich eine Fehlermeldung, dass eine Umgebung nicht gefunden werden kann?
Wenn die Meldung "Job XXXX: Environment XXXX" nicht gefunden wurde. Die Umgebung ist nicht vorhanden oder wurde nicht für die Verwendung autorisiert., es gibt mehrere mögliche Gründe für den Fehler.
Laufzeitparameter funktionieren beim Erstellen der Umgebung nicht, da die Parameter nur zur Laufzeit erweitert werden. Sie können Variablen verwenden, um eine Umgebung zu erstellen, oder templateContext verwenden, um Eigenschaften an Vorlagen zu übergeben.
Azure-Pipelines verfügen möglicherweise nicht über Informationen zum Benutzer, der die Umgebung erstellt.
Wenn Sie auf eine Umgebung verweisen, die in einer YAML-Pipeline-Datei nicht existiert, erstellt Azure Pipelines die Umgebung in den folgenden Fällen automatisch:
- Sie verwenden den Assistenten für die YAML-Pipelineerstellung in der Azure Pipelines-Weboberfläche und verweisen auf eine Umgebung, die noch nicht erstellt wurde.
- Sie aktualisieren die YAML-Datei mithilfe des Azure Pipelines-Webeditors und speichern die Pipeline, nachdem Sie den Verweis auf eine Umgebung hinzugefügt haben.
In den folgenden Fällen enthält Azure Pipelines keine Informationen über den Benutzer, der die Umgebung erstellt, sodass die Pipeline fehlschlägt.
- Sie aktualisieren die YAML-Datei mithilfe eines anderen externen Code-Editors.
- Sie fügen einen Verweis auf eine Umgebung hinzu, die nicht existiert, und lösen dann eine manuelle oder Continuous Integration Pipeline aus.
Zuvor hat Azure Pipelines diese Fälle behandelt, indem es alle Projektmitwirkenden der Administratorrolle der Umgebung hinzugefügt hat. Jedes Mitglied des Projekts konnte dann diese Berechtigungen ändern und verhindern, dass andere auf die Umgebung zugreifen. Um dieses Ergebnis zu verhindern, verursacht Azure Pipelines jetzt ein Fehlschlagen dieser Aufträge.