Erstellen einer Umgebung und Verwenden der Umgebung als Ziel

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

Eine Umgebung ist eine Sammlung von Ressourcen, die Sie mit Bereitstellungen aus einer Pipeline als Ziel verwenden können. Gängige Beispiele für Umgebungsnamen sind „Dev“, „Test“, „QA“, „Staging“ und „Produktion“. Eine Azure DevOps-Umgebung stellt ein logisches Ziel dar, in dem Ihre Pipeline Software bereitstellt.

Azure DevOps-Umgebungen sind in klassischen Pipelines nicht verfügbar. Für klassische Pipelines bieten Bereitstellungsgruppen ähnliche Funktionen.

Umgebungen bieten folgende Vorteile:

Vorteil BESCHREIBUNG
Bereitstellungsverlauf Pipelinename und Ausführungsdetails werden für Bereitstellungen in einer Umgebung und ihren Ressourcen aufgezeichnet. Im Kontext mehrerer Pipelines, die auf dieselbe Umgebung oder Ressource abzielen, ist der Bereitstellungsverlauf einer Umgebung nützlich, um die Quelle von Änderungen zu identifizieren.
Nachverfolgbarkeit von Commits und Arbeitselementen Anzeigen von Aufträgen in der Pipelineausführung, die auf eine Umgebung abzielen. Sie können auch die Commits und Arbeitselemente anzeigen, die neu in der Umgebung bereitgestellt wurden. Durch die Rückverfolgbarkeit kann auch nachverfolgt werden, ob eine Codeänderung (Commit) oder ein Feature bzw. eine Fehlerkorrektur (Arbeitselemente) eine Umgebung erreicht haben.
Diagnose der Ressourcenintegrität Überprüfen, ob die Anwendung im gewünschten Zustand funktioniert.
Security Schützen von Umgebungen durch Angeben, welche Benutzer*innen und Pipelines eine Umgebung als Ziel verwenden dürfen.

Eine Umgebung ist eine Gruppierung von Ressourcen, aber die Ressourcen sind tatsächliche Bereitstellungsziele. Derzeit werden die Typen Kubernetes-Ressource und VM-Ressource unterstützt.

Wenn Sie eine YAML-Pipeline erstellen und auf eine nicht vorhandene Umgebung verweisen, erstellt Azure Pipelines die Umgebung automatisch, wenn der/die Benutzer*in, der bzw. die den Vorgang ausführt, bekannt ist und Berechtigungen zugewiesen werden können. Wenn Azure Pipelines keine Informationen zu den die Umgebung erstellenden Benutzer*innen (etwa ein YAML-Update von externen Codebearbeiter*innen) hat, tritt bei der Pipeline ein Fehler auf, sofern die Umgebung noch nicht vorhanden ist.

Voraussetzungen

Erstellen einer Umgebung

  1. Melden Sie sich bei Ihrer Organisation (https://dev.azure.com/{yourorganization}) an, und wählen Sie Ihr Projekt aus.

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

    Environments

  3. Geben Sie Informationen für die Umgebung ein, und wählen Sie dann Erstellen aus. Ressourcen können einer vorhandenen Umgebung zu einem späteren Zeitpunkt hinzugefügt werden.

    Screenshot of creating a new environment.

Verwenden Sie auch eine Pipeline zum Erstellen und Bereitstellen in Umgebungen. Weitere Informationen finden Sie in der Schrittanleitung.

Tipp

Sie können eine leere Umgebung erstellen und in Bereitstellungsaufträgen darauf verweisen. Auf diese Weise können Sie den Bereitstellungsverlauf für die Umgebung aufzeichnen.

Verwenden einer Umgebung aus einem Bereitstellungsauftrag als Ziel

Ein Bereitstellungsauftrag ist eine Sammlung von Schritten, die nacheinander ausgeführt werden sollen. Ein Bereitstellungsauftrag kann für eine gesamte Umgebung (Ressourcengruppe) verwendet werden, wie im folgenden YAML-Codeschnipsel gezeigt. Die Pipeline wird auf dem Computer „myVM“ ausgeführt, da der Ressourcenname angegeben wurde.

- 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

Verwenden einer bestimmten Ressource in einer Umgebung als Ziel über den Bereitstellungsauftrag

Sie können das Ziel der Bereitstellung auf eine bestimmte Ressource in der Umgebung festlegen. Anschließend können Sie den Bereitstellungsverlauf für eine bestimmte Ressource in der Umgebung aufzeichnen. Die Schritte des Bereitstellungsauftrags erben automatisch die Dienstverbindungsdetails von der Ressource, die der Bereitstellungsauftrag als Ziel hat.

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)
         # value for kubernetesServiceConnection input automatically passed down to task by environment.resource input

Umgebung in Ausführungsdetails

Alle Umgebungen, die von Bereitstellungsaufträgen einer bestimmten Ausführung einer Pipeline als Ziel verwendet werden, werden auf der Registerkarte Umgebungen der Pipelineausführungsdetails aufgeführt.

Environments in run details

Wenn Sie einen privaten AKS-Cluster verwenden, ist die Registerkarte Umgebungen nicht verfügbar.

Genehmigungen

Mithilfe von Genehmigungsüberprüfungen können Sie manuell steuern, wann eine Stage ausgeführt werden soll. Verwenden Sie Genehmigungsüberprüfungen, um Bereitstellungen in Produktionsumgebungen zu steuern. Den Ressourcenbesitzer*innen stehen Überprüfungen zur Verfügung, um zu steuern, wann eine Stage in einer Pipeline eine Ressource nutzt. Als Besitzer einer Ressource, z. B. einer Umgebung, können Sie Genehmigungen und Überprüfungen definieren, die erfüllt sein müssen, bevor eine Stage mit dieser Ressource beginnt.

Manuelle Genehmigungsüberprüfungen für Umgebungen werden unterstützt. Weitere Informationen finden Sie unter Genehmigungen.

Die Rollen „Ersteller“, „Administrator“und „Benutzer“ können Genehmigungen und Überprüfungen verwalten. Die Rolle „Leser“ kann keine Genehmigungen und Überprüfungen verwalten.

Bereitstellungsverlauf

Die Ansicht des Bereitstellungsverlaufs in Umgebungen bietet die folgenden Vorteile.

  • Anzeigen von Aufträgen aus allen Pipelines, die auf eine bestimmte Umgebung abzielen. Beispiel: Zwei Microservices, die jeweils über eine eigene Pipeline verfügen, werden in derselben Umgebung bereitgestellt. Die Auflistung des Bereitstellungsverlaufs hilft bei der Identifizierung aller Pipelines, die sich auf diese Umgebung auswirken, und auch bei der Visualisierung der Reihenfolge der Bereitstellungen durch jede Pipeline.

    Screenshot of deployment history listing.

  • Führen Sie einen Drilldown in die Auftragsdetails aus, um die Liste der Commits und Arbeitselemente anzuzeigen, die in der Umgebung bereitgestellt wurden. Die Liste der Commits und Arbeitselemente enthält die neuen Elemente zwischen Bereitstellungen. Ihre erste Liste enthält alle Commits, und die folgenden Listen enthalten nur Änderungen. Wenn mehrere Commits an denselben Pull Request gebunden sind, werden mehrere Ergebnisse auf den Registerkarten für die Arbeitselemente und Änderungen angezeigt.

    Screenshot of commits under deployment history.

  • Wenn mehrere Arbeitselemente an denselben Pull Request gebunden sind, werden mehrere Ergebnisse auf den Registerkarten für die Arbeitselemente angezeigt.

    Screenshot of work items under deployment history.

Sicherheit

Benutzerberechtigungen

Steuern Sie mit Benutzerberechtigungen, wer die Umgebungen erstellen, anzeigen, verwenden und verwalten kann. Es gibt vier Rollen: „Ersteller“ (Bereich: alle Umgebungen), „Leser“, „Benutzer“ und „Administrator“. Im Bereich Benutzerberechtigungen der jeweiligen Umgebung können Sie die geerbten Berechtigungen festlegen und die Rollen für jede Umgebung außer Kraft setzen.

  1. Wechseln Sie zu der genauen Umgebung, die Sie autorisieren möchten.
  2. Wählen Sie >Sicherheit aus, um die Einstellungen anzuzeigen.
  3. Wählen Sie Benutzerberechtigungen>+Hinzufügen>Benutzer oder Gruppe und dann eine geeignete Rolle aus.
Rolle 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 ihr 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.

Rolle 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 Pipelineberechtigungen, um alle oder ausgewählte Pipelines für die Bereitstellung in der Umgebung zu autorisieren.

  • Um den offenen Zugang für die Umgebung oder Ressource zu entfernen, wählen Sie unter Pipelineberechtigungen die Option Berechtigung einschränken aus.
  • Um bestimmten Pipelines die Bereitstellung in einer Umgebung oder einer bestimmten Ressource zu genehmigen, wählen Sie + aus, und treffen Sie dann in der Liste der Pipelines eine Auswahl.

Nächste Schritte

Definieren von Genehmigungen und Überprüfungen

Häufig gestellte Fragen

F: Warum erhalte ich eine Fehlermeldung, wenn ich versuche, eine Umgebung zu erstellen?

A: Wenn die Meldung „Zugriff verweigert: {Benutzer*in} benötigt Erstellungsberechtigungen, um die Aktion auszuführen“ angezeigt wird, überprüfen Sie Ihre Berechtigungen auf Organisationsebene. Wechseln Sie zu Organisationseinstellungen>Benutzer, und überprüfen Sie, ob Sie über die Rolle „Beteiligter“ verfügen. Die Rolle des Beteiligten kann keine Umgebungen erstellen. Ä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.

F: Warum erhalte ich den Fehler „Auftrag XXXX: Umgebung XXXX konnte nicht gefunden werden. Die Umgebung existiert nicht oder wurde nicht zur Verwendung autorisiert.“?

A: Dies sind einige der möglichen Gründe für den Fehler:

  • Wenn Sie eine YAML-Pipeline erstellen und auf eine Umgebung verweisen, die in der YAML-Datei nicht vorhanden ist, erstellt Azure Pipelines die Umgebung in einigen 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 einen Verweis auf eine Umgebung hinzugefügt haben, die nicht vorhanden ist.
  • In den folgenden Flows verfügt Azure Pipelines nicht über Informationen zu dem Benutzer oder der Benutzerin, der bzw. die die Umgebung erstellt: Sie aktualisieren die YAML-Datei mithilfe eines anderen externen Code-Editors, fügen einen Verweis auf eine Umgebung hinzu, die nicht vorhanden ist, und sorgen dann für das Auslösen einer manuellen oder Continuous Integration-Pipeline. In diesem Fall kennt Azure Pipelines die Benutzer*innen nicht. Zuvor haben wir diesen Fall behandelt, indem wir alle Projektmitwirkenden der Administratorrolle der Umgebung hinzugefügt haben. Jedes Mitglied des Projekts konnte dann diese Berechtigungen ändern und verhindern, dass andere auf die Umgebung zugreifen.

  • Sie können Variablen verwenden, um die Umgebung zu erstellen, oder templateContext verwenden, um Eigenschaften an Vorlagen zu übergeben. Laufzeitparameter funktionieren beim Erstellen der Umgebung nicht, da sie zur Laufzeit erweitert werden.

  • Benutzer*innen mit der Zugriffsebene „Projektbeteiligter“ können die Umgebung nicht erstellen, da die Projektbeteiligten keinen Zugriff auf das Repository haben.