Erweitern einer Pipeline für die Verwendung mehrerer Vorlagen
In diesem Lab lernen Sie, wie wichtig es ist, eine Pipeline auf mehrere Vorlagen zu erweitern und wie Sie Azure DevOps dafür verwenden. Dieses Lab behandelt grundlegende Konzepte und Best Practices für das Erstellen einer mehrstufigen Pipeline, einer Variablenvorlage, einer Auftragsvorlage und einer Phasenvorlage.
Diese Übung dauert ca. 20 Minuten.
Vorbereitung
Sie benötigen ein Azure-Abonnement, eine Azure DevOps-Organisation und die eShopOnWeb-Anwendung, um den Labs zu folgen.
- Folgen Sie den Schritten, um Ihre Lab-Umgebung zu überprüfen.
Anweisungen
Übung 1: Erstellen einer mehrstufigen YAML-Pipeline
In dieser Übung erstellen Sie eine mehrstufige YAML-Pipeline in Azure DevOps.
Aufgabe 1: Erstellen einer mehrstufigen YAML-Hauptpipeline
-
Navigieren Sie zum Azure DevOps-Portal unter
https://aex.dev.azure.com
und öffnen Sie Ihre Organisation. -
Öffnen Sie das Projekt eShopOnWeb.
-
Navigieren Sie zu Pipelines > Pipelines.
-
Klicken Sie auf die Schaltfläche Neue Pipeline.
-
Wählen Sie Azure Repos Git (Yaml).
-
Wählen Sie das Repository eShopOnWeb aus.
-
Wählen Sie Starterpipeline aus.
-
Ersetzen Sie den Inhalt der Datei azure-pipelines.yml durch folgenden Code:
trigger: - main pool: vmImage: 'windows-latest' stages: - stage: Dev jobs: - job: Build steps: - script: echo Build - stage: Test jobs: - job: Test steps: - script: echo Test - stage: Production jobs: - job: Deploy steps: - script: echo Deploy
-
Klicken Sie auf Speichern und ausführen. Wählen Sie zunächst den direkten Commit zu Mainbranch und dann Speichern und ausführen aus.
-
Die Pipeline wird mit den drei Phasen (Entwicklung, Test und Produktion) und den entsprechenden Aufträgen ausgeführt. Warten Sie, bis die Pipeline abgeschlossen ist, und navigieren Sie zurück zur Seite Pipelines.
-
Wählen Sie … (Weitere Optionen) auf der rechten Seite der soeben erstellten Pipeline und anschließend Umbenennen/Verschieben aus.
-
Benennen Sie die Pipeline in eShopOnWeb-MultiStage-Main um, und wählen Sie Speichern aus.
Aufgabe 2: Erstellen einer Variablenvorlage
-
Wechseln Sie zu Repos > Dateien.
-
Erweitern Sie den Ordner .ado, und klicken Sie auf Neue Datei.
-
Geben Sie der Datei den Namen eshoponweb-variables.yml, und klicken Sie auf Erstellen.
-
Fügen Sie der Datei den folgenden Code hinzu:
variables: resource-group: 'YOUR-RESOURCE-GROUP-NAME' location: 'centralus' templateFile: 'infra/webapp.bicep' subscriptionid: 'YOUR-SUBSCRIPTION-ID' azureserviceconnection: 'YOUR-AZURE-SERVICE-CONNECTION-NAME' webappname: 'YOUR-WEB-APP-NAME'
-
Ersetzen Sie die Werte der Variablen jeweils durch die Werte für Ihre Umgebung:
- Ersetzen Sie YOUR-RESOURCE-GROUP-NAME durch den Namen der Ressourcengruppe, die Sie in diesem Lab verwenden möchten, wie rg-eshoponweb-secure.
- Legen Sie den Namen der Variablen Standort auf den Namen der Azure-Region fest, in der Sie Ihre Ressourcen bereitstellen möchten, wie centralus.
- Ersetzen Sie YOUR-SUBSCRIPTION-ID durch Ihre Azure-Abonnement-ID.
- Ersetzen Sie YOUR-AZURE-SERVICE-CONNECTION-NAME mit azure subs.
- Ersetzen Sie YOUR-WEB-APP-NAME durch einen global eindeutigen Namen der Web-App, die bereitgestellt werden soll, z.B. die Zeichenfolge eshoponweb-lab-multi-123456 gefolgt von einer zufälligen sechsstelligen Zahl.
-
Wählen Sie Abschließen aus, geben Sie in das Textfeld für den Abschließenden Kommentar
[skip ci]
ein, und wählen Sie dann Abschließen aus.Hinweis: Indem Sie den Kommentar
[skip ci]
zur Übergabe hinzufügen, verhindern Sie die automatische Ausführung der Pipeline, die zu diesem Zeitpunkt standardmäßig nach jeder Änderung an der Repository ausgeführt wird.
Aufgabe 3: Vorbereiten der Pipeline für die Verwendung von Vorlagen
-
Wechseln Sie im Azure DevOps-Portal auf der Projektseite eShopOnWeb zu Pipelines > Pipelines.
-
Wählen Sie im Stammverzeichnis des Repositorys die Datei azure-pipelines.yml aus, die die Definition der Pipeline eShopOnWeb-MultiStage-Main enthält.
-
Klicken Sie auf die Schaltfläche Bearbeiten.
-
Ersetzen Sie den Inhalt der Datei azure-pipelines.yml durch folgenden Code:
trigger: - main variables: - template: .ado/eshoponweb-variables.yml stages: - stage: Dev jobs: - template: .ado/eshoponweb-ci.yml - stage: Test jobs: - template: .ado/eshoponweb-cd-webapp-code.yml - stage: Production jobs: - job: Deploy steps: - script: echo Deploy to Production or Swap
-
Wählen Sie Commit aus, geben Sie im Textfeld „Commitkommentar“
[skip ci]
ein, und wählen Sie dann Commit aus.
Aufgabe 4: Aktualisieren von CI/CD-Vorlagen
-
Wählen Sie im Abschnitt Repos des Projekts eShopOnWeb das Verzeichnis .ado und anschließend die Datei eshoponweb-ci.yml aus.
-
Klicken Sie auf die Schaltfläche Bearbeiten.
-
Entfernen Sie den gesamten Text über dem Abschnitt Aufträge.
#NAME THE PIPELINE SAME AS FILE (WITHOUT ".yml") # trigger: # - main resources: repositories: - repository: self trigger: none stages: - stage: Build displayName: Build .Net Core Solution
-
Wählen Sie Abschließen aus, geben Sie in das Textfeld für den Abschließenden Kommentar
[skip ci]
ein, und wählen Sie dann Abschließen aus. -
Wählen Sie im Abschnitt Repos des Projekts eShopOnWeb das Verzeichnis .ado und anschließend die Datei eshoponweb-cd-webapp-code.yml aus.
-
Klicken Sie auf die Schaltfläche Bearbeiten.
-
Entfernen Sie den gesamten Text über dem Abschnitt Aufträge.
# NAME THE PIPELINE SAME AS FILE (WITHOUT ".yml") # # Trigger CD when CI executed successfully resources: pipelines: - pipeline: eshoponweb-ci source: eshoponweb-ci # given pipeline name trigger: true repositories: - repository: eShopSecurity type: git name: eShopSecurity/eShopSecurity # name of the project and repository variables: - template: eshoponweb-secure-variables.yml@eShopSecurity # name of the template and repository stages: - stage: Test displayName: Testing WebApp jobs: - deployment: Test pool: eShopOnWebSelfPool environment: Test strategy: runOnce: deploy: steps: - script: echo Hello world! Testing environments! - stage: Deploy displayName: Deploy to WebApp
-
Ersetzen Sie den vorhandenen Inhalt des Schritts #download artefacts durch folgenden Inhalt:
- download: current artifact: Website - download: current artifact: Bicep
-
Wählen Sie Abschließen aus, geben Sie in das Textfeld für den Abschließenden Kommentar
[skip ci]
ein, und wählen Sie dann Abschließen aus.
Aufgabe 5: Ausführen der Hauptpipeline
-
Navigieren Sie zu Pipelines > Pipelines.
-
Öffnen Sie die Pipeline eShopOnWeb-MultiStage-Main.
-
Klicken Sie auf Pipeline ausführen.
Hinweis: Wenn Sie eine Meldung erhalten, dass die Pipeline eine Zugriffsberechtigung für eine Ressource benötigt, bevor dieser Lauf fortgesetzt werden kann, wählen Sie Ansicht und dann Erlaubnis und Erlaubnis erneut aus, um die Pipeline laufen zu lassen.
Anmerkung: Wenn Aufträge in der Bereitstellungsphase fehlschlagen, navigieren Sie zur Seite mit der Pipelineausführung und wählen Sie Fehlerhafte Aufträge erneut ausführen* aus.
-
Warten Sie, bis die Pipeline abgeschlossen ist, und überprüfen Sie die Ergebnisse.
[!IMPORTANT] Denken Sie daran, die im Azure-Portal erstellten Ressourcen zu löschen, um unnötige Gebühren zu vermeiden.
Überprüfung
In diesem Lab haben Sie gelernt, wie Sie eine Pipeline mithilfe von Azure DevOps auf mehrere Vorlagen erweitern. Dieses Lab wurden grundlegende Konzepte und Best Practices für das Erstellen einer mehrstufigen Pipeline, einer Variablenvorlage, einer Auftragsvorlage und einer Phasenvorlage behandelt.