Verwenden von DevTest Labs in Build- und Releasepipelines in Azure Pipelines

Dieser Artikel enthält Informationen dazu, wie DevTest Labs in Azure Pipelines Build- und Releasepipelines verwendet werden kann.

Gesamtfluss

Der grundlegende Ablauf sieht eine Buildpipeline vor, die die folgenden Aufgaben ausführt:

  1. Erstellen Sie den Anwendungscode.
  2. Erstellen Sie die Basisumgebung in DevTest Labs.
  3. Aktualisieren Sie die Umgebung mit benutzerdefinierten Informationen.
  4. Bereitstellen der Anwendung in der DevTest Labs-Umgebung
  5. Testen Sie den Code.

Nach dem erfolgreichen Erstellen des Builds verwendet die Releasepipeline die Buildartefakte für die Bereitstellung in der Staging- oder Produktionsumgebung.

Eine der erforderlichen Voraussetzungen besteht darin, dass alle zum Neustellen des getesteten Ökosystems erforderlichen Informationen in den Buildartefakten verfügbar sind, einschließlich der Konfiguration der Azure-Ressourcen. Da Azure Ressourcen bei der Verwendung kostenaufwendig sind, möchten Unternehmen entweder die Nutzung dieser Ressourcen steuern oder nachverfolgen. In einigen Fällen können Azure Resource Manager Vorlagen, die zum Erstellen und Konfigurieren der Ressourcen verwendet werden, von einer anderen Abteilung wie der IT verwaltet werden. Und diese Vorlagen können in einem anderen Repository gespeichert werden. Dies führt zu einer interessanten Situation beim Erstellen und Testen eines Builds. Sowohl der Code als auch die Konfiguration müssen in den Buildartefakten gespeichert werden, um das System in der Produktion neu zu erstellen.

Mithilfe von DevTest Labs während der Build- und Testphase können Sie Azure Resource Manager Vorlagen und unterstützenden Dateien zu den Buildquellen hinzufügen. Während der Veröffentlichungsphase stellen Sie die genaue Konfiguration bereit, die Sie im Test für die Produktion verwendet haben. Die Aufgabe "Azure DevTest Labs Umgebung erstellen" mit der richtigen Konfiguration speichert die Resource Manager Vorlagen in den Buildartefakten. In diesem Beispiel verwenden Sie den Code aus dem Lernprogramm: Erstellen Sie eine .NET Core- und SQL-Datenbank-Web-App in Azure App Service, um die Web-App in Azure bereitzustellen und zu testen.

Diagramm, das den Gesamtfluss zeigt.

Einrichten von Azure-Ressourcen

Sie müssen vorher ein paar Elemente erstellen:

  • Zwei Repositorys. Die erste mit dem Code aus dem Lernprogramm und einer Resource Manager Vorlage mit zwei weiteren virtuellen Computern. Die zweite enthält die Basisvorlage Azure Resource Manager (vorhandene Konfiguration).
  • Eine Ressourcengruppe für die Bereitstellung des Produktionscodes und der Konfiguration.
  • Ein Labor mit einer Verbindung zum Konfigurations-Repository für die Build-Pipeline. Checken Sie die Resource Manager Vorlage im Konfigurationsrepository als „azuredeploy.json“ mit der Datei „metadata.json“ ein. Mit diesem Namen können DevTest Labs die Vorlage erkennen und bereitstellen.

Die Buildpipeline erstellt eine DevTest Labs-Umgebung und stellt den Code für Tests bereit.

Einrichten einer Buildpipeline

Erstellen Sie in Azure Pipelines eine Buildpipeline mithilfe des Codes aus dem Lernprogramm: Erstellen Sie eine .NET Core- und SQL-Datenbank-Web-App in Azure App Service. Verwenden Sie die ASP.NET Core Vorlage, die die erforderliche Aufgabe auffüllt, um den Code zu erstellen, zu testen und zu veröffentlichen.

Screenshot, der die Auswahl der ASP.NET-Vorlage zeigt.

Fügen Sie drei weitere Aufgaben hinzu, um die Umgebung in DevTest Labs zu erstellen und in der Umgebung bereitzustellen.

Screenshot einer Pipeline mit drei Aufgaben.

Erstellen einer Umgebungsaufgabe

Verwenden Sie in der Aufgabe Azure DevTest Labs "Umgebung erstellen" die Dropdownlisten, um die folgenden Werte auszuwählen:

  • Azure-Abonnement
  • Name des Labors
  • Name des Repositorys
  • Name der Vorlage (der den Ordner anzeigt, in dem die Umgebung gespeichert ist).

Es wird empfohlen, Dropdownlisten auf der Seite zu verwenden, anstatt die Informationen manuell einzugeben. Wenn Sie die Informationen manuell eingeben, geben Sie vollqualifizierte Azure Ressourcen-IDs ein. In der Aufgabe werden die Anzeigenamen anstelle der Ressourcen-IDs angezeigt.

Der Name der Umgebung ist der in DevTest Labs angezeigte Name. Es sollte ein eindeutiger Name für jeden Build sein. Beispiel: TestEnv$(Build.BuildId).

Sie können entweder Parameterdatei oder Parameter angeben, um Informationen an die Resource Manager Vorlage zu übergeben.

Wählen Sie die Option Ausgabevariablen basierend auf der Ausgabe der Umgebungsvorlage erstellen aus, und geben Sie einen Referenznamen ein. Geben Sie in diesem Beispiel "BaseEnv " für den Verweisnamen ein. Sie verwenden diesen BaseEnv beim Konfigurieren der nächsten Aufgabe.

Screenshot der Aufgabe

Aufgabe zum Auffüllen der Umgebung

Die zweite Aufgabe (Azure DevTest Labs-Aufgabe „Umgebung füllen“) besteht darin, die vorhandene DevTest Labs-Umgebung zu aktualisieren. Die Aufgabe "Umgebung erstellen" gibt BaseEnv.environmentResourceId aus, die zum Konfigurieren des Umgebungsnamens für diese Aufgabe verwendet wird. Die Resource Manager Vorlage für dieses Beispiel weist zwei Parameter auf: adminUserName und adminPassword.

Screenshot mit der Aufgabe „Umgebung in Azure DevTest Labs auffüllen“.

App Service–Bereitstellungsaufgabe

Der dritte Vorgang ist die aufgabe Azure App Service Bereitstellen. Der App-Typ ist auf Web App festgelegt, und der Name des App-Diensts ist auf "$(WebSite)" festgelegt.

Screenshot der Aufgabe

Einrichten der Releasepipeline

Sie erstellen eine Release-Pipeline mit zwei Aufgaben: Azure-Bereitstellung: Ressourcengruppe erstellen oder aktualisieren und Azure App Service bereitstellen.

Geben Sie für den ersten Vorgang den Namen und die Position der Ressourcengruppe an. Der Vorlagenspeicherort ist ein verknüpftes Artefakt. Wenn die Resource Manager Vorlage verknüpfte Vorlagen enthält, müssen Sie eine benutzerdefinierte Ressourcengruppenbereitstellung implementieren. Die Vorlage befindet sich im veröffentlichten Ablageartefakt. Überschreiben Sie die Vorlagenparameter für die Resource-Manager-Vorlage. Sie können verbleibende Einstellungen mit Standardwerten belassen.

Geben Sie für die zweite Aufgabe "Bereitstellen Azure App Service" das Azure-Abonnement an, wählen Sie Web App für den App-Typ und $(WebSite) für den App-Dienstnamen aus. Sie können verbleibende Einstellungen mit Standardwerten belassen.

Testlauf

Nachdem Sie beide Pipelines eingerichtet haben, können Sie einen Build manuell in die Warteschlange einreihen und prüfen, wie er funktioniert. Der nächste Schritt besteht darin, den entsprechenden Trigger für den Build festzulegen und den Build mit der Releasepipeline zu verbinden.

Nächste Schritte

Weitere Informationen finden Sie in folgenden Artikeln: