Bereitstellen auf einem virtuellen Windows-Computer

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Wir zeigen Ihnen, wie Sie Continuous Deployment Ihrer ASP.net-oder Node.js-App auf einem IIS-Webserver, der unter Windows ausgeführt wird, mit Azure Pipelines einrichten. Sie können die Schritte in dieser Schnellstartanleitung verwenden, wenn Ihre Continuous Integration Pipeline ein Webbereitstellungs Paket veröffentlicht.

Eine typische releasepipeline für Webanwendungen

Nachdem Sie einen Commit für eine Codeänderung durch tragen haben, wird Sie automatisch erstellt und bereitgestellt. Die Ergebnisse werden automatisch auf Ihrer Website angezeigt.

Definieren der CI-Buildpipeline

Sie benötigen eine Build-Pipeline für Continuous Integration (CI), mit der das Webbereitstellungs Paket veröffentlicht wird. Informationen zum Einrichten einer CI-Buildpipeline finden Sie unter:

Voraussetzungen

IIS-Konfiguration

Die Konfiguration variiert abhängig vom Typ der APP, die Sie bereitstellen.

ASP.NET-App

Öffnen Sie auf Ihrer VM einen Administrator: Windows PowerShell -Konsole. Installieren von IIS:

# Install IIS
Install-WindowsFeature Web-Server,Web-Asp-Net45,NET-Framework-Features

ASP.NET Core-App

Das Ausführen einer ASP.net Core-app unter Windows erfordert einige Abhängigkeiten.

Öffnen Sie auf Ihrer VM einen Administrator: Windows PowerShell -Konsole. Installieren Sie IIS und die erforderlichen .NET-Features:

# Install IIS
Install-WindowsFeature Web-Server,Web-Asp-Net45,NET-Framework-Features

# Install the .NET Core SDK
Invoke-WebRequest https://go.microsoft.com/fwlink/?linkid=848827 -outfile $env:temp\dotnet-dev-win-x64.1.0.6.exe
Start-Process $env:temp\dotnet-dev-win-x64.1.0.6.exe -ArgumentList '/quiet' -Wait

# Install the .NET Core Windows Server Hosting bundle
Invoke-WebRequest https://dotnet.microsoft.com/permalink/dotnetcore-current-windows-runtime-bundle-installer -outfile $env:temp\DotNetCore.WindowsHosting.exe
Start-Process $env:temp\DotNetCore.WindowsHosting.exe -ArgumentList '/quiet' -Wait

# Restart the web server so that system PATH updates take effect
Stop-Service was -Force
Start-Service w3svc

Node.js-App

Befolgen Sie die Anweisungen in diesem Thema , um iisnode auf IIS-Servern zu installieren und zu konfigurieren.

Erstellen einer Bereitstellungsgruppe

Bereitstellungs Gruppen in Azure Pipelines vereinfachen die Organisation der Server, die Sie zum Hosten Ihrer APP verwenden möchten. Bei einer Bereitstellungs Gruppe handelt es sich um eine Sammlung von Computern, auf denen sich jeweils ein Azure Pipelines-Agent befindet. Jeder Computer interagiert mit Azure Pipelines, um die Bereitstellung Ihrer App zu koordinieren.

  1. Öffnen Sie das Azure Pipelines-Webportal, und wählen Sie Bereitstellungs Gruppen.

  2. Klicken Sie auf Bereitstellungs Gruppe hinzufügen (oder neu , wenn bereits Bereitstellungs Gruppen vorhanden sind).

  3. Geben Sie einen Namen für die Gruppe ein, z. b. myiis, und klicken Sie dann auf Erstellen.

  4. Vergewissern Sie sich im Abschnitt Computer registrieren , dass Windows ausgewählt ist und dass im Skript für die Authentifizierung die Option persönliches Zugriffs Token verwenden ebenfalls ausgewählt ist. Klicken Sie auf Skript in Zwischenablage kopieren.

    Durch das Skript, das Sie in die Zwischenablage kopiert haben, wird ein Agent auf dem virtuellen Computer heruntergeladen und konfiguriert, sodass er neue Webbereitstellungs Pakete empfangen und auf IIS anwenden kann.

  5. Fügen Sie auf Ihrem virtuellen Computer in einer PowerShell-Administrator Konsole das Skript ein, und führen Sie es aus.

  6. Wenn Sie aufgefordert werden, Tags für den Agent zu konfigurieren, drücken Sie die EINGABETASTE (Sie benötigen keine Tags).

  7. Wenn Sie zur Eingabe des Benutzerkontos aufgefordert werden, drücken Sie die EINGABETASTE, um die Standardeinstellungen zu akzeptieren.

    Das Konto, unter dem der Agent ausgeführt wird, benötigt die Berechtigung " Verwalten " für das Verzeichnis "c:\windows\system32\inetsrv". Das Hinzufügen von Benutzern ohne Administratorrechte zu diesem Verzeichnis ist nicht empfehlenswert. Wenn Sie über eine benutzerdefinierte Benutzeridentität für die Anwendungs Pools verfügen, muss die Identität darüber hinaus über die Berechtigung zum Lesen der Kryptografieschlüssel verfügen. Lokalen Dienst Konten und Benutzerkonten muss Lesezugriff erteilt werden. Weitere Informationen finden Sie unter Fehlermeldung "Keyset ist nicht vorhanden".

  8. Wenn das Skript ausgeführt wird, wird der Nachrichten Dienst "vstsagent. Account. Computername" erfolgreich gestartet.

  9. Öffnen Sie auf der Seite Bereitstellungs Gruppen in Azure Pipelines die Bereitstellungs Gruppe myiis . Überprüfen Sie auf der Registerkarte Ziele , ob Ihr virtueller Computer aufgeführt ist.

Definieren der CD-releasepipeline

Ihre CD-releasepipeline übernimmt die vom CI-Build veröffentlichten Artefakte und stellt Sie dann auf Ihren IIS-Servern bereit.

  1. Wenn Sie dies noch nicht getan haben, installieren Sie die IIS-Web-App-Bereitstellung mithilfe der WinRM -Erweiterung im Marketplace. Diese Erweiterung enthält die Aufgaben, die für dieses Beispiel erforderlich sind.

  2. Führen Sie eines der folgenden Verfahren aus:

    • Wenn Sie gerade einen CI-Build abgeschlossen haben, wählen Sie auf der Registerkarte Zusammenfassung des Builds Release aus. Dadurch wird eine neue releasepipeline erstellt, die automatisch mit der Buildpipeline verknüpft ist.

    • Öffnen Sie die Registerkarte Releases von Azure Pipelines, öffnen + Sie die Dropdown Liste in der Liste der releasepipelines, und wählen Sie releasepipeline erstellen aus.

  3. Wählen Sie die Vorlage IIS-Website Bereitstellung aus, und wählen Sie dann

  4. Wenn Sie die neue releasepipeline aus einer Buildzusammenfassung erstellt haben, überprüfen Sie, ob die Buildpipeline und das Artefakt im Abschnitt Artefakte auf der Registerkarte Pipeline angezeigt werden. Wenn Sie eine neue releasepipeline auf der Registerkarte Releases erstellt haben, wählen Sie den Link + Hinzufügen aus, und wählen Sie das buildartefakt

  5. Wählen Sie im Abschnitt Artefakte das Symbol kontinuierliche Bereitstellung aus, überprüfen Sie, ob der Continuous Deployment-Auslösers aktiviert ist, und fügen Sie einen Filter hinzu, um den hauptbranch einzubeziehen

  6. Öffnen Sie die Registerkarte Tasks , und wählen Sie den Bereitstellungs Auftrag IIS Wählen Sie für die Bereitstellungs Gruppe die Bereitstellungs Gruppe aus, die Sie zuvor erstellt haben (z. b. myiis).

  7. Speichern Sie die Releasepipeline.

Erstellen eines Releases zum Bereitstellen Ihrer APP

Sie können nun ein Release erstellen, d. h., Sie können die releasepipeline mit den Artefakten ausführen, die von einem bestimmten Build erstellt werden. Dies führt dazu, dass der Build bereitgestellt wird:

  1. Wählen Sie + Release aus, und klicken Sie auf Release erstellen.

  2. Überprüfen Sie im Bereich neue Version erstellen , ob die zu verwendende artefaktversion ausgewählt ist, und wählen Sie dann Erstellen aus.

  3. Wählen Sie in der Informationsleiste den releaselink aus. Beispiel: "Release Release-1 wurde erstellt."

  4. Wählen Sie in der Pipeline Ansicht in den Phasen der Pipeline den Link Status aus, um die Protokolle und die agentausgabe anzuzeigen.

  5. Nachdem das Release fertiggestellt wurde, navigieren Sie zu Ihrer APP, und überprüfen Sie Ihren Inhalt.

Nächste Schritte