Tutorial: Continuous Integration von ARM-Vorlagen mit Azure Pipelines

Im vorherigen Tutorial haben Sie eine verknüpfte Vorlage bereitgestellt. In diesem Tutorial finden Sie Informationen zum kontinuierlichen Erstellen und Bereitstellen von Azure Resource Manager-Vorlagenprojekten (ARM-Vorlagen) mit Azure Pipelines.

Azure DevOps stellt Entwicklerdienste bereit, die Teams bei der Arbeitsplanung, bei der gemeinsamen Codeentwicklung sowie bei der Erstellung und Bereitstellung von Anwendungen unterstützen. Mit Azure DevOps Services können Entwickler in der Cloud arbeiten. Azure DevOps bietet integrierte Features, auf die Sie über Ihren Webbrowser oder über Ihren IDE-Client zugreifen können. Eines dieser Features ist Azure Pipelines. Azure Pipelines ist ein umfassender Dienst für Continuous Integration (CI) und Continuous Delivery (CD). Er kann mit Ihrem bevorzugten Git-Anbieter sowie für Bereitstellungen in den meisten gängigen Clouddiensten verwendet werden. Anschließend können Sie das Erstellen, Testen und Bereitstellen Ihres Codes für Microsoft Azure, Google Cloud Platform oder Amazon Web Services automatisieren.

Hinweis

Überlegen Sie sich einen Projektnamen. Ersetzen Sie in diesem Tutorial jedes Vorkommen von ARMPipelineProj durch Ihren Projektnamen. Dieser Projektname wird verwendet, um Ressourcennamen zu generieren. Bei einer der Ressourcen handelt es sich um ein Speicherkonto. Speicherkontonamen müssen zwischen 3 und 24 Zeichen lang sein und dürfen nur Zahlen und Kleinbuchstaben enthalten. Der Name muss eindeutig sein. In der Vorlage ist der Name des Speicherkontos der Projektname, an den store angefügt wird. Der Projektname muss zwischen 3 und 11 Zeichen lang sein. Daher muss der Projektname die Anforderungen des Speicherkontonamens erfüllen und weniger als 11 Zeichen enthalten.

Dieses Tutorial enthält die folgenden Aufgaben:

  • ein GitHub-Repository erstellen
  • Erstellen eines Azure DevOps-Projekts
  • Erstellen einer Azure-Pipeline
  • Überprüfen der Pipelinebereitstellung
  • Aktualisieren der Vorlage und erneutes Bereitstellen
  • Bereinigen von Ressourcen

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Damit Sie die Anweisungen in diesem Artikel ausführen können, benötigen Sie Folgendes:

  • Ein GitHub-Konto zum Erstellen eines Repositorys für Ihre Vorlagen. Falls Sie keines haben, können Sie kostenlos eines erstellen. Weitere Informationen zur Verwendung von GitHub-Repositorys finden Sie unter Build GitHub repositories (Erstellen von GitHub-Repositorys).
  • Git installieren. In diesem Tutorial wird Git Bash oder Git Shell verwendet. Eine entsprechende Anleitung finden Sie unter Install Git (Installieren von Git).
  • Eine Azure DevOps-Organisation. Sollten Sie über keine Organisation verfügen, können Sie kostenlos eine Organisation erstellen. Weitere Informationen finden Sie unter Quickstart: Create an organization or project collection (Schnellstart: Erstellen einer Organisation oder einer Projektsammlung).
  • (Optional) Visual Studio Code mit der Erweiterung „Azure Resource Manager-Tools“ . Weitere Informationen finden Sie unter Schnellstart: Erstellen von ARM-Vorlagen mit Visual Studio Code.

ein GitHub-Repository erstellen

GitHub wird zum Speichern Ihres Projektquellcodes (einschließlich Resource Manager-Vorlagen) verwendet. Informationen zu weiteren unterstützten Repositorys finden Sie unter Supported repository types (Unterstützte Repositorytypen).

Erstellen eines GitHub-Repositorys

Sollten Sie kein GitHub-Konto besitzen, sehen Sie sich die Voraussetzungen an.

  1. Melden Sie sich bei GitHub an.

  2. Wählen Sie rechts oben Ihr Kontobild und anschließend Your Repositorys (Ihre Repositorys) aus.

    Screenshot of creating a GitHub repository for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Wählen Sie die grüne Schaltfläche New (Neu) aus.

  4. Geben Sie unter Repository Name (Repositoryname) einen Repositorynamen ein. Beispiel: ARMPipeline-repo. Denken Sie daran, alle Vorkommen von ARMPipeline durch Ihren Projektnamen zu ersetzen. In diesem Tutorial können Sie entweder Public (Öffentlich) oder Private (Privat) auswählen. Wählen Sie anschließend Create Repository (Repository erstellen) aus.

  5. Notieren Sie sich die URL. Die Repository-URL hat das folgende Format: https://github.com/[YourAccountName]/[YourRepositoryName] .

Dieses Repository wird als Remoterepository bezeichnet. Jeder Entwickler des gleichen Projekts kann sein eigenes lokales Repository klonen und die Änderungen mit dem Remoterepository zusammenführen.

Klonen des Remoterepositorys

  1. Öffnen Sie Git Shell oder Git Bash. Siehe Voraussetzungen.

  2. Vergewissern Sie sich, dass Sie sich im Ordner GitHub befinden.

  3. Führen Sie den folgenden Befehl aus:

    git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName]
    cd [YourGitHubRepositoryName]
    mkdir create_web_app
    cd create_web_app
    pwd
    

    Ersetzen Sie [YourAccountName] durch den Namen Ihres GitHub-Kontos und [YourGitHubRepositoryName] durch den Namen des Repositorys, das Sie im vorherigen Schritt erstellt haben.

Die Vorlage wird im Ordner create_web_app gespeichert. Der Befehl pwd zeigt den Ordnerpfad an. Dieser Pfad wird im nächsten Schritt verwendet, um die Vorlage zu speichern.

Herunterladen einer Schnellstartvorlage

Anstatt die Vorlagen zu erstellen, können Sie sie herunterladen und im Ordner create_web_app speichern.

Sowohl der Ordnername als auch der Dateiname werden genau so in der Pipeline verwendet. Wenn Sie diese Namen ändern, müssen auch die in der Pipeline verwendeten Namen aktualisiert werden.

Pushen der Vorlage in das Remoterepository

Die Datei azuredeploy.json wurde dem lokalen Repository hinzugefügt. Als Nächstes muss die Vorlage in das Remoterepository hochgeladen werden.

  1. Öffnen Sie Git Shell oder Git Bash, sofern es nicht bereits geöffnet ist.

  2. Wechseln Sie zum Ordner create_web_app in Ihrem lokalen Repository.

  3. Vergewissern Sie sich, dass der Ordner die Datei azuredeploy.json enthält.

  4. Führen Sie den folgenden Befehl aus:

    git add .
    git commit -m "Add web app templates."
    git push origin main
    

    Daraufhin wird unter Umständen eine LF-Warnung angezeigt. Diese Warnung kann ignoriert werden. main ist der Mainbranch. Üblicherweise wird für jedes Update ein eigener Branch erstellt. Zur Vereinfachung des Tutorials verwenden wir den Mainbranch direkt.

  5. Navigieren Sie in einem Browser zu Ihrem GitHub-Repository. Die URL ist https://github.com/[YourAccountName]/[YourGitHubRepository]. Der Ordner create_web_app und die zwei Dateien im Ordner werden angezeigt.

  6. Klicken Sie auf azuredeploy.json, um die Vorlage zu öffnen.

  7. Wählen Sie die Schaltfläche raw (unformatiert) aus. Die URL beginnt mit https://raw.githubusercontent.com.

  8. Kopieren Sie die URL. Sie müssen diesen Wert angeben, wenn Sie die Pipeline später in diesem Tutorial konfigurieren.

Sie haben nun ein GitHub-Repository erstellt und die Vorlagen in das Repository hochgeladen.

Erstellen eines DevOps-Projekts

Für den nächsten Schritt wird eine DevOps-Organisation benötigt. Falls Sie keine Organisation haben, sehen Sie sich die Voraussetzungen an.

  1. Melden Sie sich bei Azure DevOps an.

  2. Wählen Sie links eine DevOps-Organisation und dann Neues Projekt aus. Sollten Sie über keine Projekte verfügen, wird automatisch die Projekterstellungsseite geöffnet.

  3. Geben Sie die folgenden Werte ein:

    Screenshot of creating an Azure DevOps project for Azure Resource Manager Azure DevOps Azure Pipelines.

    • Projektname: Geben Sie einen Projektnamen ein. Sie können den Projektnamen verwenden, den Sie ganz am Anfang des Tutorials überlegt haben.
    • Sichtbarkeit: Wählen Sie Privat aus.

    Übernehmen Sie bei den anderen Eigenschaften die Standardwerte.

  4. Klicken Sie auf Erstellen.

Erstellen Sie eine Dienstverbindung für die Projektbereitstellung in Azure.

  1. Wählen Sie im unteren Bereich des linken Menüs die Option Projekteinstellungen aus.

  2. Wählen Sie unter Pipelines die Option Dienstverbindungen aus.

  3. Wählen Sie Dienstverbindung erstellen > Azure Resource Manager > Weiter aus.

  4. Wählen Sie Dienstprinzipal (automatisch) und dann Weiter aus.

  5. Geben Sie die folgenden Werte ein:

    • Bereichsebene: Wählen Sie Abonnement aus.
    • Abonnement: Wählen Sie Ihr Abonnement aus.
    • Ressourcengruppe: Lassen Sie dieses Feld leer.
    • Verbindungsname: Geben Sie einen Verbindungsnamen ein. Beispiel: ARMPipeline-conn. Notieren Sie sich diesen Namen. Er wird bei der Pipelineerstellung benötigt.
    • Gewähren Sie allen Pipelines die Zugriffsberechtigung. (aktiviert)
  6. Wählen Sie Speichern aus.

Erstellen einer Pipeline

In den vorangegangenen Abschnitten wurden die folgenden Aufgaben ausgeführt. Sollten Sie diese Abschnitte übersprungen haben, weil Sie bereits mit GitHub und DevOps vertraut sind, müssen Sie diese Aufgaben nachholen, bevor Sie fortfahren.

  • Erstellen Sie ein GitHub-Repository, und speichern Sie die Vorlage im Ordner create_web_app des Repositorys.
  • Erstellen eines DevOps-Projekts und einer Azure Resource Manager-Dienstverbindung

So erstellen Sie eine Pipeline mit einem Vorlagenbereitstellungsschritt:

  1. Wählen Sie im linken Menü die Option Pipelines aus.

  2. Wählen Sie Pipeline erstellen aus.

  3. Wählen Sie auf der Registerkarte Verbinden die Option GitHub aus. Geben Sie Ihre GitHub-Anmeldeinformationen ein, wenn Sie dazu aufgefordert werden, und folgen Sie dann den Anweisungen. Wählen Sie im folgenden Bildschirm die Option Only select repositories (Nur ausgewählte Repositorys) aus, und vergewissern Sie sich, dass Ihr Repository in der Liste enthalten ist, bevor Sie Approve & Install (Genehmigen und installieren) auswählen.

    Screenshot of selecting repositories for Azure Resource Manager Azure DevOps Azure Pipelines.

  4. Wählen Sie auf der Registerkarte Auswählen Ihr Repository aus. Der Standardname ist [YourAccountName]/[YourGitHubRepositoryName].

  5. Wählen Sie auf der Registerkarte Konfigurieren die Option Starterpipeline aus. Daraufhin wird die Pipelinedatei azure-pipelines.yml mit zwei Skriptschritten angezeigt.

  6. Löschen Sie die beiden Skriptschritte aus der YML-Datei.

  7. Bewegen Sie den Cursor in die Zeile nach Schritte: .

  8. Wählen Sie auf der rechten Seite des Bildschirms Assistent anzeigen aus, um den Bereich Aufgaben zu öffnen.

  9. Wählen Sie ARM-Vorlagenbereitstellung aus.

  10. Geben Sie die folgenden Werte ein:

    • deploymentScope: Wählen Sie Ressourcengruppe aus. Weitere Informationen zum Umfang finden Sie unter Bereitstellungsumfang.
    • Azure Resource Manager-Verbindung: Wählen Sie den Namen der Dienstverbindung aus, den Sie zuvor erstellt haben.
    • Abonnement: Geben Sie die Zielabonnement-ID an.
    • Aktion: Durch Auswählen der Aktion Ressourcengruppe erstellen oder aktualisieren werden zwei Aktionen ausgeführt: 1. Sie erstellt eine Ressourcengruppe, falls ein neuer Ressourcengruppenname angegeben wurde. 2. Sie stellt die angegebene Vorlage bereit.
    • Ressourcengruppe: Geben Sie einen neuen Namen für die Ressourcengruppe ein. Beispiel: ARMPipeline-rg.
    • Standort: Wählen Sie einen Ort für die Ressourcengruppe (beispielsweise USA, Mitte).
    • Template location (Vorlagenspeicherort): Klicken Sie auf URL of the file (URL der Datei). Dies bedeutet, dass der Task mithilfe der URL nach der Vorlagendatei sucht. Da relativePath in der Hauptvorlage verwendet wird und relativePath nur bei URI-basierten Bereitstellungen unterstützt wird, müssen Sie hier die URL verwenden.
    • Vorlagenlink: Geben Sie die URL ein, die Sie am Ende des Abschnitts Ein GitHub-Repository erstellen erhalten haben. Sie beginnt mit https://raw.githubusercontent.com .
    • Vorlagenparameterlink: Lassen Sie dieses Feld leer. Sie geben die Parameterwerte in Vorlagenparameter überschreiben an.
    • Vorlagenparameter überschreiben: Geben Sie -projectName [EnterAProjectName] ein.
    • Bereitstellungsmodus: Wählen Sie Inkrementell aus.
    • Bereitstellungsname: Geben Sie DeployPipelineTemplate ein. Wählen Sie Erweitert aus, damit Bereitstellungsname angezeigt wird.

    Screenshot of the ARM template deployment page with required values entered for Azure DevOps Azure Pipelines.

  11. Wählen Sie Hinzufügen aus.

    Weitere Informationen zu dieser Aufgabe finden Sie unter Aufgabe „Bereitstellung einer Azure-Ressourcengruppe“und Aufgabe „Azure Resource Manager-Vorlagenbereitstellung“.

    Die YML-Datei sollte in etwa wie folgt aussehen:

    Screenshot of the Review page with the new pipeline titled Review your pipeline YAML for Azure DevOps Azure Pipelines.

  12. Klicken Sie auf Speichern und ausführen.

  13. Wählen Sie im Bereich Speichern und ausführen erneut die Option Speichern und ausführen aus. Eine Kopie der YAML-Datei wird im verbundenen Repository gespeichert. Sie können die YAML-Datei anzeigen, indem Sie zu Ihrem Repository navigieren.

  14. Vergewissern Sie sich, dass die Pipeline erfolgreich ausgeführt wird.

    Screenshot of Azure Resource Manager Azure DevOps Azure Pipelines YAML file.

Überprüfen der Bereitstellung

  1. Melden Sie sich beim Azure-Portal an.
  2. Öffnen Sie die Ressourcengruppe. Der Name entspricht der Angabe aus der YAML-Pipelinedatei. Es sollte ein einzelnes Speicherkonto erstellt werden. Der Name des Speicherkontos beginnt mit store.
  3. Wählen Sie den Namen des Speicherkontos aus, um es zu öffnen.
  4. Wählen Sie Eigenschaften aus. Beachten Sie, dass unter Replikation die Option Lokal redundanter Speicher (LRS) ausgewählt ist.

Aktualisieren und erneutes Bereitstellen

Wenn Sie die Vorlage aktualisieren und die Änderungen in das Remoterepository pushen, werden die Ressourcen (in diesem Fall: das Speicherkonto) automatisch durch die Pipeline aktualisiert.

  1. Öffnen Sie linkedStorageAccount.json in Ihrem lokalen Repository in Visual Studio Code oder einem beliebigen Text-Editor.

  2. Aktualisieren Sie den Standardwert (defaultValue) von storageAccountType auf Standard_GRS. Der folgende Screenshot zeigt dies:

    Screenshot of updating the YAML file for Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Speichern Sie die Änderungen.

  4. Führen Sie in Git Bash/Shell die folgenden Befehle aus, um die Änderungen in das Remoterepository zu pushen:

    git pull origin main
    git add .
    git commit -m "Update the storage account type."
    git push origin main
    

    Der erste Befehl (pull) synchronisiert das lokale Repository mit dem Remoterepository. Die YAML-Pipelinedatei wurde nur dem Remoterepository hinzugefügt. Wenn Sie den pull-Befehl ausführen, wird eine Kopie der YAML-Datei in den lokalen Branch heruntergeladen.

    Mit dem vierten Befehl (push) wird die überarbeitete Datei linkedStorageAccount.json in das Remoterepository hochgeladen. Nachdem der Mainbranch des Remoterepositorys aktualisiert wurde, wird die Pipeline erneut ausgelöst.

Sehen Sie sich zur Überprüfung der Änderungen die Replikationseigenschaft des Speicherkontos an. Eine entsprechende Anleitung finden Sie unter Überprüfen der Bereitstellung.

Bereinigen von Ressourcen

Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe, um die bereitgestellten Ressourcen zu bereinigen.

  1. Wählen Sie im Azure-Portal im linken Menü die Option Ressourcengruppe aus.
  2. Geben Sie den Namen der Ressourcengruppe in das Feld Nach Name filtern ein.
  3. Klicken Sie auf den Namen der Ressourcengruppe.
  4. Wählen Sie Ressourcengruppe löschen aus dem Menü ganz oben aus.

Falls gewünscht, können Sie auch das GitHub-Repository und das Azure DevOps-Projekt löschen.

Nächste Schritte

Herzlichen Glückwunsch, Sie haben dieses Tutorial zur Bereitstellung von Resource Manager-Vorlagen abgeschlossen. Informieren Sie uns im Abschnitt „Feedback“, wenn Sie Kommentare oder Vorschläge haben. Vielen Dank! Sie sind bereit, sich mit fortgeschritteneren Konzepten für Vorlagen zu befassen. Das nächste Tutorial geht detaillierter auf die Verwendung der Referenzdokumentation von Vorlagen zum Definieren von bereitzustellenden Ressourcen ein.