Teilen über


Variablengruppen verwalten

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

In diesem Artikel wird erläutert, wie Variablengruppen in Azure-Pipelines erstellt und verwendet werden. Variablengruppen speichern Werte und Secrets, die Sie an eine YAML-Pipeline übergeben oder über mehrere Pipelines in einem Projekt hinweg verfügbar machen können.

Secret-Variablen in Variablengruppen sind geschützte Ressourcen. Sie können Kombinationen von Genehmigungen, Überprüfungen und Pipelineberechtigungen hinzufügen, um den Zugriff auf Geheimnisvariablen in einer Variablengruppe zu beschränken. Der Zugriff auf Nicht-Secret-Variablen ist nicht durch Genehmigungen, Überprüfungen oder Pipelineberechtigungen eingeschränkt.

Variablengruppen folgen dem Bibliothekssicherheitsmodell für Rollen und Berechtigungen.

Erstellen einer Variablengruppe

Sie können Variablengruppen für die Pipelineausführungen in Ihrem Projekt erstellen.

Hinweis

Um eine Secret-Variablengruppe zu erstellen, um Secrets aus einem Azure-Key Vault als Variablen zu verknüpfen, befolgen Sie die Anweisungen unter Verknüpfen von Secret aus einem Azure-Key Vault.

Sie können eine Variablengruppe auf der Benutzeroberfläche von Azure Pipelines erstellen.

Voraussetzungen

Eine Azure DevOps-Organisation und ein Projekt, in dem Sie über Berechtigungen zum Erstellen von Pipelines und Variablen verfügen.

Erstellen der Variablengruppe

  1. Wählen Sie in Ihrem Azure DevOps-Projekt Pipelines>Library im linken Menü.

  2. Klicken Sie auf der Seite Bibliothek auf + Variablengruppe.

    Screenshot des Bildschirms „Bibliothek“ und der Schaltfläche „Variablengruppe hinzufügen“.

  3. Geben Sie auf der Seite „Neue Variablengruppe“ unter Eigenschaften einen Namen und eine optionale Beschreibung für die Variablengruppe ein.

  4. Wählen Sie unter Variablen + Hinzufügen und geben Sie dann einen Variablennamen und einen Wert ein, der in die Gruppe aufgenommen werden soll. Wenn Sie den Wert verschlüsseln und sicher speichern möchten, wählen Sie das Schlosssymbol neben der Variablen aus.

  5. Wählen Sie + Hinzufügen, um die einzelnen neuen Variablen hinzuzufügen. Wenn Sie mit dem Hinzufügen von Variablen fertig sind, wählen Sie Speichern.

    Screenshot des Konfigurierens und Speicherns einer Variablengruppe.

Sie können diese Variablengruppe jetzt in Projekt-Pipelines verwenden.

Sie können eine Variablengruppe erstellen, die mit einem vorhandenen Azure-Schlüsseltresor verknüpft ist, und der Variablengruppe ausgewählte Key Vault-Geheimnisse zuordnen. Der Variablengruppe werden nur die Geheimnisnamen zugeordnet, nicht die Geheimniswerte. Pipelineausführungen, die mit der Variablengruppe verknüpft sind, rufen die neuesten Geheimniswerte aus dem Tresor ab.

Alle Änderungen für vorhandene Geheimnissen im Schlüsseltresor sind automatisch für alle Pipelines verfügbar, die diese Variablengruppe verwenden. Wenn dem Schlüsseltresor jedoch Geheimnisse hinzugefügt werden oder wenn Geheimnisse aus dem Schlüsseltresor gelöscht werden, werden die zugeordneten Variablengruppen nicht automatisch aktualisiert. Sie müssen die Geheimnisse explizit aktualisieren, damit sie in die Variablengruppe aufgenommen werden.

Auch wenn Key Vault das Speichern und Verwalten kryptografischer Schlüssel und Zertifikate auf Azure unterstützt, unterstützt die Azure Pipelines-Variablengruppenintegration nur die Zuordnung von Schlüsseltresorgeheimnissen. Kryptografische Schlüssel und Zertifikate werden nicht unterstützt.

Hinweis

Schlüsseltresore, die die rollenbasierte Azure-Zugriffssteuerung (Azure RBAC) verwenden, werden nicht unterstützt.

Voraussetzungen

  • Ein Azure-Schlüsseltresor, der Ihre Geheimnisse enthält. Sie können einen Schlüsseltresor über das Azure-Portal erstellen.
  • Eine Azure Dienstverbindung für Ihr Projekt.

Erstellen der Variablengruppe

  1. Wählen Sie im Azure DevOps-Projekt Pipelines>Bibliothek>+ Variablengruppe aus.
  2. Geben Sie auf der Seite Variablengruppen einen Namen und optional eine Beschreibung für die Variablengruppe ein.
  3. Aktivieren Sie die Umschaltfläche Geheimnisse von einem Azure Key Vault als Variablen verknüpfen.
  4. Wählen Sie den Azure-Abonnementendpunkt und den Schlüsseltresornamen aus.
  5. Aktivieren Sie Azure DevOps, um auf den Schlüsseltresor zuzugreifen, indem Sie neben dem Schlüsseltresornamen Autorisieren auswählen.
  6. Wählen Sie auf dem Bildschirm Geheimnisse auswählen bestimmte Geheimnisse aus Ihrem Schlüsseltresor aus, um sie dieser Variablengruppe zuzuordnen. Wählen Sie anschließend OK aus.
  7. Wählen Sie Speichern aus, um die geheime Variablengruppe zu speichern.

Screenshot der Variablengruppe mit Azure Key Vault-Integration.

Hinweis

Ihre Azure-Dienstverbindung muss mindestens über Berechtigungen für Abrufen und Auflisten für den Schlüsseltresor verfügen. Sie können diese Berechtigungen in den vorherigen Schritten gewähren. Sie können diese Berechtigungen auch über das Azure-Portal gewähren, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie Einstellungen für den Schlüsseltresor, und wählen Sie dann Zugriffskonfiguration>Zu den Zugriffsrichtlinien aus.
  2. Wenn Ihr Azure Pipelines-Projekt auf der Seite Zugriffsrichtlinien nicht unter Anwendungen mit mindestens den Berechtigungen für Abrufen und Auflisten aufgeführt wird, wählen Sie Erstellen aus.
  3. Wählen Sie unter Geheimnisberechtigungen die Optionen Abrufen und Auflisten und dann Weiter aus.
  4. Wählen Sie den Dienstprinzipal und dann Weiter aus.
  5. Wählen Sie erneut Weiter aus, überprüfen Sie die Einstellungen, und wählen Sie dann Erstellen aus.

Weitere Informationen finden Sie unter Verwenden von Azure Key Vault-Geheimnissen.

Aktualisieren von Variablengruppen

Sie können Variablengruppen mithilfe der Benutzeroberfläche von Azure Pipelines aktualisieren.

  1. Wählen Sie in Ihrem Azure DevOps-Projekt Pipelines>Library im linken Menü.
  2. Wählen Sie auf der Seite Bibliothek die Variablengruppe aus, die Sie aktualisieren möchten. Sie können auch mit dem Mauszeiger auf den Variablengruppeneintrag zeigen, das Symbol Weitere Optionen und dann Bearbeiten im Menü auswählen.
  3. Ändern Sie auf der Seite der Variablengruppe eine der Eigenschaften, und wählen Sie dann Speichern.

Löschen einer Variablengruppe

Sie können Variablengruppen auf der Benutzeroberfläche von Azure Pipelines löschen.

  1. Wählen Sie in Ihrem Azure DevOps-Projekt Pipelines>Library im linken Menü.
  2. Zeigen Sie auf der Seite Bibliothek auf die Variablengruppe, die Sie löschen möchten, und wählen Sie das Symbol Weitere Optionen.
  3. Wählen Sie im Menü Löschen und dann auf dem Bestätigungsbildschirm Löschen aus.

Verwalten von Variablen in Variablengruppen

Sie können Variablen in Variablengruppen mithilfe der Benutzeroberfläche von Azure Pipelines ändern, hinzufügen oder löschen.

  1. Wählen Sie in Ihrem Azure DevOps-Projekt Pipelines>Library im linken Menü.
  2. Wählen Sie auf der Seite Bibliothek die Variablengruppe aus, die Sie aktualisieren möchten. Sie können auch mit dem Mauszeiger auf den Variablengruppeneintrag zeigen, das Symbol Weitere Optionen und dann Bearbeiten im Menü auswählen.
  3. Auf der Variablengruppenseite können Sie folgende Aktionen ausführen:
    • Ändern der Variablennamen oder -werte.
    • Löschen von Variablen, indem Sie das Papierkorbsymbol neben dem Variablennamen auswählen.
    • Ändern von Variablen zu Secrets oder Non-Secrets, indem Sie das Schlosssymbol neben dem Variablenwert auswählen.
    • Fügen Sie neue Variablen hinzu, indem Sie + Hinzufügen auswählen.
  4. Klicken Sie auf Speichern, nachdem Sie die Änderungen vorgenommen haben.

Verwenden von Variablengruppen in Pipelines

Sie können Variablengruppen in YAML- oder klassischen Pipelines verwenden. Änderungen, die Sie an einer Variablengruppe vornehmen, sind automatisch für alle Definitionen oder Phasen verfügbar, mit denen die Variablengruppe verknüpft ist.

Verwenden von Variablengruppen in YAML-Pipelines

Nachdem Sie eine YAML-Pipeline für die Verwendung einer Variablengruppe autorisiert haben, können Sie die Variablengruppe oder die Variablen darin in der Pipeline verwenden.

Autorisieren der YAML-Pipeline für die Verwendung der Variablengruppe

Wenn Sie nur die Variablengruppe in YAML-Pipelines benennen, können alle, die per Push Code an Ihr Repository übermitteln können, den Inhalt der Secrets in der Variablengruppe extrahieren. Um daher eine Variablengruppe mit YAML-Pipelines zu verwenden, müssen Sie die Pipeline für die Verwendung der Gruppe autorisieren. Klassische Pipelines können Variablenruppen ohne separate Autorisierung verwenden.

Sie können Pipelines für die Verwendung Ihrer Variablengruppen mithilfe der Benutzeroberfläche von Azure Pipelines autorisieren.

  1. Wählen Sie in Ihrem Azure DevOps-Projekt Pipelines>Library im linken Menü.
  2. Wählen Sie auf der Seite Bibliothek die Variablengruppe aus, die Sie autorisieren möchten.
  3. Wählen Sie auf der Seite mit der Variablengruppe die Registerkarte Pipelineberechtigungen aus.
  4. Wählen Sie auf dem Bildschirm Pipelineberechtigungen + und dann die zu autorisierende Pipeline aus. Oder wählen Sie das Symbol Weitere Aktionen, Offener Zugriff und dann zur Bestätigung erneut Offener Zugriff aus.

Wenn Sie eine Pipeline auswählen, wird diese Pipeline für die Verwendung der Variablengruppe autorisiert. Um eine weitere Pipeline zu autorisieren, wählen Sie das Symbol + erneut aus. Wenn Sie Offener Zugriff auswählen, werden alle Projekt-Pipelines zur Verwendung der Variablengruppe autorisiert. „Offener Zugriff“ bietet sich an, wenn Sie keine Secrets in der Gruppe haben.

Eine weitere Möglichkeit zur Autorisierung einer Variablengruppe ist die Auswahl von Bearbeiten und das anschließende Queueing eines Builds. Sie erhalten einen Ressourcenautorisierungsfehler und können die Pipeline dann explizit als autorisierter Benutzer der Variablengruppe hinzufügen.

Verwenden der Variablengruppe in der YAML-Pipeline

Um eine Variable aus einer Variablengruppe zu verwenden, fügen Sie einen Verweis auf den Namen der Gruppe in Ihrer YAML-Pipeline-Datei hinzu. Anschließend können Variablen aus der Variablengruppe in Ihrer Datei verwendet werden.

variables:
- group: my-variable-group

Sie können auf mehrere Variablengruppen in derselben Pipeline verweisen. Wenn mehrere Variablengruppen dieselbe Variable enthalten, legt die letzte Variablengruppe, die die Variable in der Datei verwendet, den Wert der Variable fest. Weitere Informationen zur Rangfolge von Variablen finden Sie unter Erweiterung von Variablen.

Sie können auch auf eine Variablengruppe in einer Vorlage verweisen. Die folgende variables.yml-Vorlagendatei verweist auf die Variablengruppe my-variable-group. Die Variablengruppe enthält eine Variable mit dem Namen myhello.

variables:
- group: my-variable-group

Die YAML-Pipeline verweist auf die Vorlage variables.yml und verwendet die Variable $(myhello) aus der Variablengruppe my-variable-group.

stages:
- stage: MyStage
  variables:
  - template: variables.yml
  jobs:
  - job: Test
    steps:
    - script: echo $(myhello)

Verwenden von Variablengruppenvariablen in YAML-Pipelines

Sie können auf die Variablenwerte in einer verknüpften Variablengruppe auf die gleiche Weise zugreifen wie bei Variablen, die in der Pipeline definiert sind. Wenn Sie beispielsweise auf den Wert einer Variable mit dem Namen customer in einer Variablengruppe zugreifen möchten, die mit der Pipeline verknüpft ist, können Sie $(customer) in einem Task-Parameter oder einem Skript verwenden.

Wenn Sie sowohl eigenständige Variablen als auch Variablengruppen in Ihrer Pipelinedatei verwenden, verwenden Sie die name-value-Syntax für die eigenständigen Variablen.

variables:
- group: my-variable-group
- name: my-standalone-variable
  value: 'my-standalone-variable-value'

Verwenden Sie Makrosyntax oder einen Laufzeitausdruck, um auf eine Variable in einer Variablengruppe zu verweisen. In den folgenden Beispielen verfügt die Gruppe my-variable-group über eine Variable mit dem Namen myhello.

So verwenden Sie einen Laufzeitausdruck:

variables:
- group: my-variable-group
- name: my-passed-variable
  value: $[variables.myhello]
- script: echo $(my-passed-variable)

So verwenden Sie Makrosyntax:

variables:
- group: my-variable-group

steps:
- script: echo $(myhello)

Sie können nicht direkt in Skripts auf Secret-Variablen, einschließlich verschlüsselter Variablen und Key Vault-Variablen, zugreifen. Sie müssen diese Variablen als Argumente an eine Aufgabe übergeben. Weitere Informationen finden Sie unter Secret-Variablen.

Verwenden von Variablengruppen in klassischen Pipelines

Klassische Pipelines können Variablenruppen ohne separate Autorisierung verwenden. So verwenden Sie eine Variablengruppe:

  1. Öffnen Sie Ihre klassische Pipeline.

  2. Wählen Sie Variablen>Variablengruppen und dann Variablengruppe verknüpfen.

  3. In einer Buildpipeline wird eine Liste der verfügbaren Gruppen angezeigt. Verknüpfen Sie eine Variablegruppe mit der Pipeline. Alle Variablen in der Gruppe sind für die Verwendung innerhalb der Pipeline verfügbar.

    In einer Release-Pipeline wird beispielsweise auch eine Dropdownliste der Phasen in der Pipeline angezeigt. Verknüpfen Sie die Variablengruppe wird mit der Pipeline selbst oder mit einer oder mehreren bestimmten Phase(n) der Release-Pipeline. Wenn Sie eine Verknüpfung mit einer oder mehreren Phasen herstellen, werden die Variablen aus der Variablengruppe auf diese Phasen beschränkt und sind in den anderen Phasen derselben Version nicht verfügbar.

    Screenshot, der das Verknüpfen einer Variablengruppe zeigt.

Wenn Sie in mehreren Bereichen eine Variable mit dem gleichen Namen festlegen, wird die folgende Rangfolge verwendet (höchster Rang zuerst):

  1. Zum Einreihungszeitpunkt festgelegte Variable
  2. In der Pipeline festgelegte Variable
  3. In der Variablengruppe festgelegte Variable

Weitere Informationen zur Rangfolge von Variablen finden Sie unter Erweiterung von Variablen.

Hinweis

Variablen in verschiedenen Gruppen, die mit einer Pipeline im selben Bereich (z. B. Auftrag oder Stage) verknüpft sind, führen zu Konflikten und können zu unvorhersehbaren Ergebnissen führen. Stellen Sie sicher, dass Sie für Variablen in allen Variablengruppen unterschiedliche Namen verwenden.