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:

Erstellen einer Umgebung

So erstellen Sie Ihre erste Umgebung:

  1. Melden Sie sich bei Ihrer Azure DevOps-Organisation an https://dev.azure.com/{yourorganization} , und öffnen Sie Ihr Projekt.

  2. Wählen Sie Pipelines>Umgebungen>Umgebung erstellen aus.

    Screenshot, der Umgebungen zeigt.

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

    Screenshot des Erstellens einer neuen Umgebung.

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.

Screenshot, der Umgebungen in Ausführungsdetails zeigt.

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.

    Screenshot der Auflistung des Bereitstellungsverlaufs.

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

    Screenshot von Commits im Bereitstellungsverlauf.

  • Wenn mehrere Arbeitsaufgaben an denselben Auftrag gebunden sind, gibt es mehrere Ergebnisse auf der Registerkarte "Arbeitselemente ".

    Screenshot von Arbeitselementen im Bereitstellungsverlauf.

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.