Erstellen einer Umgebung und Verwenden der Umgebung als Ziel

Azure Pipelines | Azure DevOps Server 2020

Eine Umgebung ist eine Sammlung von Ressourcen, die Sie mit Bereitstellungen aus einer Pipeline als Ziel haben können. Typische Beispiele für Umgebungsnamen sind Dev, Test, QA, Staging und Production.

Umgebungen bieten die folgenden Vorteile.

Vorteil BESCHREIBUNG
Bereitstellungsverlauf Pipelinename und Ausführungsdetails werden für Bereitstellungen in einer Umgebung und deren Ressourcen aufgezeichnet. Im Kontext mehrerer Pipelines für dieselbe Umgebung oder Ressource ist der Bereitstellungsverlauf einer Umgebung nützlich, um die Quelle der Änderungen zu identifizieren.
Nachverfolgbarkeit von Commits und Arbeitselementen Anzeigen von Aufträgen innerhalb der Pipelinelauf, die auf eine Umgebung ausgerichtet sind. Sie können auch die Commits und Arbeitselemente anzeigen, die in der Umgebung neu bereitgestellt wurden. Mit der Nachverfolgbarkeit kann auch nachverfolgt werden, ob eine Codeänderung (Commit) oder eine Funktion/Fehlerbehebung (Arbeitselemente) eine Umgebung erreicht hat.
Integrität der Diagnoseressource Überprüfen Sie, ob die Anwendung im gewünschten Zustand funktioniert.
Sicherheit Schützen Sie Umgebungen, indem Sie angeben, welche Benutzer und Pipelines eine Umgebung als Ziel verwenden dürfen.

Während eine Umgebung eine Gruppierung von Ressourcen ist, stellen die Ressourcen selbst tatsächliche Bereitstellungsziele dar. Die Ressourcentypen Kubernetes-Ressource und virtueller Computer werden derzeit unterstützt.

Erstellen einer Umgebung

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

  2. Wählen Sie PipelinesUmgebungenUmgebung erstellenaus.

    Environments

  3. Geben Sie Informationen für die Umgebung ein, und wählen Sie dann Erstellenaus. Ressourcen können später einer vorhandenen Umgebung hinzugefügt werden.

    Screenshot of creating a new environment.

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

Tipp

Sie können eine leere Umgebung erstellen und über Bereitstellungsaufträge darauf verweisen. Dadurch können Sie den Bereitstellungsverlauf für die Umgebung aufzeichnen.

Ziel einer Umgebung aus einem Bereitstellungsauftrag

Ein Bereitstellungsauftrag ist eine Sammlung von Schritten, die sequenziell ausgeführt werden sollen. Ein Bereitstellungsauftrag kann für eine gesamte Umgebung (Ressourcengruppe) verwendet werden, wie im folgenden YAML-Codeausschnitt gezeigt.

- stage: deploy
  jobs:
  - deployment: DeployWeb
    displayName: deploy Web App
    pool:
      vmImage: 'Ubuntu-latest'
    # creates an environment if it doesn't exist
    environment: 'smarthotel-dev'
    strategy:
      runOnce:
        deploy:
          steps:
          - script: echo Hello world

Ziel einer bestimmten Ressource innerhalb einer Umgebung aus dem Bereitstellungsauftrag

Sie können das Bereitstellungsziel auf eine bestimmte Ressource innerhalb der Umgebung ausrichten. Anschließend können Sie den Bereitstellungsverlauf für eine bestimmte Ressource innerhalb der Umgebung aufzeichnen. Die Schritte des Bereitstellungsauftrags erben automatisch die Dienstverbindungsdetails von der Ressource, auf die der Bereitstellungsauftrag abzielt.

environment: '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, für die Bereitstellungsaufträge einer bestimmten Pipeline ausgeführt werden, finden Sie auf der Registerkarte Umgebungen der Details zur Pipelinelauf.

Environments in run details

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

Genehmigungen

Steuern Sie manuell, wann eine Phase mit Genehmigungsprüfungen ausgeführt werden soll. Verwenden Sie Genehmigungsprüfungen, um Bereitstellungen in Produktionsumgebungen zu steuern. Dem Ressourcenbesitzer stehen Überprüfungen zur Verfügung, um zu steuern, wann eine Phase 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 Phase beginnt, in der diese Ressource verbraucht wird.

Wir unterstützen manuelle Genehmigungsprüfungen für Umgebungen. 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 bereitstellungsverlauf in Umgebungen bietet die folgenden Vorteile.

  • Anzeigen von Aufträgen aus allen Pipelines, die auf eine bestimmte Umgebung ausgerichtet sind. Beispielsweise werden zwei Microservices mit jeweils einer eigenen Pipeline in derselben Umgebung bereitgestellt. Die Auflistung des Bereitstellungsverlaufs hilft dabei, alle Pipelines zu identifizieren, die sich auf diese Umgebung auswirken, und hilft auch, die Reihenfolge der Bereitstellungen für jede Pipeline zu visualisieren.

    Deployment history

  • Führen Sie einen Drilldown in die Auftragsdetails aus, um die Liste der Commits und Arbeitselemente anzuzeigen, die in der Umgebung neu bereitgestellt wurden.

    Commits under deployment history

Sicherheit

Benutzerberechtigungen

Steuern Sie, wer die Umgebungen mit Benutzerberechtigungen erstellen, anzeigen, verwenden und verwalten kann. Es gibt vier Rollen: Creator (Bereich: alle Umgebungen), Leser, Benutzer und Administrator. Im Benutzerberechtigungsbereich der jeweiligen Umgebung können Sie die geerbten Berechtigungen festlegen und die Rollen für jede Umgebung überschreiben.

  1. Wechseln Sie zu der spezifischen Umgebung, die Sie autorisieren möchten.
  2. Wählen Sie Sicherheit aus, um die Einstellungen anzuzeigen.
  3. Wählen Sie Benutzerberechtigungen+Benutzeroder Gruppe hinzufügen aus, und wählen Sie dann eine geeignete Rolle aus.
Rolle Beschreibung
Creator Globale Rolle, verfügbar über Umgebungen Hubsicherheitsoption. 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. Ersteller werden standardmäßig als Member hinzugefügt.

Hinweis

  • Wenn Sie eine Umgebung über die Benutzeroberfläche erstellen, wird nur dem Ersteller die Administratorrolle gewährt. Sie sollten die Benutzeroberfläche verwenden, um geschützte Umgebungen wie für eine Produktionsumgebung zu erstellen.

Pipelineberechtigungen und Sicherheitsrollen

Verwenden Sie Pipelineberechtigungen, um alle oder ausgewählte Pipelines für die Bereitstellung in der Umgebung zu autorisieren.

  • Um den Open-Zugriff für die Umgebung oder Ressource zu entfernen, wählen Sie Berechtigung einschränken in Pipelineberechtigungenaus.
  • Damit bestimmte Pipelines in einer Umgebung oder einer bestimmten Ressource bereitgestellt werden können, wählen Sie + aus der Liste der Pipelines aus, und wählen Sie sie aus.

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: {User} needs Create permissions to do the action" (Zugriff verweigert: {Benutzer} benötigt Erstellungsberechtigungen für die Aktion) angezeigt wird, überprüfen Sie die Berechtigungen auf Organisationsebene. Wechseln Sie zu Organisation EinstellungenBenutzer, und überprüfen Sie, ob Sie über die Rolle der Beteiligten verfügen. Die Rolle der 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 die Fehlermeldung "Auftrag XXXX: Umgebung XXXX wurde nicht gefunden. Die Umgebung ist nicht vorhanden 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 zum Erstellen von YAML-Pipelines in der Azure Pipelines Webumgebung und verweisen auf eine Umgebung, die noch nicht erstellt wurde.
    • Sie aktualisieren die YAML-Datei mithilfe des Azure Pipelines-Web-Editors und speichern die Pipeline, nachdem Sie einen Verweis auf eine umgebung hinzugefügt haben, die nicht vorhanden ist.
  • In den folgenden Flows enthält Azure Pipelines keine Informationen zum Benutzer, der die Umgebung erstellt: Sie aktualisieren die YAML-Datei mit einem anderen externen Code-Editor, fügen einen Verweis auf eine umgebung hinzu, die nicht vorhanden ist, und lösen dann eine manuelle oder Continuous Integration-Pipeline aus. In diesem Fall Azure Pipelines nicht über den Benutzer. Zuvor haben wir diesen Fall behandelt, indem wir alle Projekt-Contributors zur Administratorrolle der Umgebung hinzugefügt haben. Jedes Mitglied des Projekts kann dann diese Berechtigungen ändern und verhindern, dass andere Benutzer auf die Umgebung zugreifen.

  • Wenn Sie Laufzeitparameter zum Erstellen der Umgebung verwenden, ist dies nicht möglich, da diese Parameter zur Laufzeit erweitert werden. Die Umgebungserstellung erfolgt zur Kompilierzeit, daher müssen wir Variablen verwenden, um die Umgebung zu erstellen.

  • Ein Benutzer mit Zugriffsebene für Projektbeteiligten kann die Umgebung nicht erstellen, da die Projektbeteiligten keinen Zugriff auf das Repository haben.