Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die kontinuierliche Integration (Continuous Integration, CI) und die kontinuierliche Bereitstellung (Continuous Deployment, CD) bilden eine Pipeline, über die Sie Ihren Code erstellen, freigeben und bereitstellen können. Azure DevOps Services bietet einen vollständigen Satz von CI/CD-Automatisierungstools für die Bereitstellung in Azure. Jenkins ist ein beliebtes CI/CD-Server-basiertes Tool von Drittanbietern, das auch CI/CD-Automatisierung bereitstellt. Sie können Azure DevOps Services und Jenkins zusammen verwenden, um anzupassen, wie Sie Ihre Cloud-App oder Ihren Dienst bereitstellen.
In diesem Lernprogramm verwenden Sie Jenkins, um eine Node.js Web-App zu erstellen. Anschließend verwenden Sie Azure DevOps, um es bereitzustellen.
zu einer Bereitstellungsgruppe , die virtuelle Linux-Computer (VMs) enthält. Hier erfahren Sie, wie Sie:
- Rufen Sie die Beispiel-App ab.
- Konfigurieren Sie Jenkins-Plug-Ins.
- Konfigurieren Sie ein Jenkins Freestyle-Projekt für Node.js.
- Konfigurieren Sie Jenkins für die Integration von Azure DevOps Services.
- Erstellen Sie einen Jenkins-Dienstendpunkt.
- Erstellen Sie eine Bereitstellungsgruppe für die virtuellen Azure-Computer.
- Erstellen Sie eine Azure Pipeline-Freigabepipeline.
- Führen Sie manuelle und CI-ausgelöste Bereitstellungen aus.
Voraussetzungen
Azure-Abonnement: Wenn Sie nicht über ein Azure-Abonnement verfügen, erstellen Sie ein kostenloses Azure-Konto , bevor Sie beginnen.
Jenkins-Server: Wenn Sie keinen Jenkins-Server installiert haben, erstellen Sie einen Jenkins-Server in Azure.
Hinweis
Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Azure DevOps Services.
Sie benötigen einen virtuellen Linux-Computer für ein Bereitstellungsziel. Weitere Informationen finden Sie unter Erstellen und Verwalten von Linux-VMs mit der Azure CLI.
Öffnen Sie den eingehenden Port 80 für Ihren virtuellen Computer. Weitere Informationen finden Sie unter Erstellen von Netzwerksicherheitsgruppen mithilfe des Azure-Portals.
Abrufen der Beispiel-App
Sie benötigen eine App zum Bereitstellen, die in einem Git-Repository gespeichert ist. Für dieses Lernprogramm empfehlen wir, diese Beispiel-App zu verwenden, die auf GitHub verfügbar ist. Dieses Lernprogramm enthält ein Beispielskript, das zum Installieren von Node.js und einer Anwendung verwendet wird. Wenn Sie mit Ihrem eigenen Repository arbeiten möchten, sollten Sie ein ähnliches Beispiel konfigurieren.
Erstellen Sie einen Fork dieser App und notieren Sie sich die Adresse (URL) für die Verwendung in späteren Schritten dieses Tutorials. Weitere Informationen finden Sie unter Fork a repo.
Hinweis
Die App wurde über Yeoman erstellt. Es verwendet Express, Bower und Grunt. Und es enthält einige npm-Pakete als Abhängigkeiten. Das Beispiel enthält auch ein Skript, das Nginx einrichtet und die App bereitstellt. Sie wird auf den virtuellen Computern ausgeführt. Insbesondere das Skript:
- Installiert Node, Nginx und PM2.
- Konfiguriert Nginx und PM2.
- Startet die Node-App.
Konfigurieren von Jenkins-Plug-Ins
Zunächst müssen Sie zwei Jenkins-Plug-Ins konfigurieren: NodeJS und VS Team Services Continuous Deployment.
- Öffnen Sie Ihr Jenkins-Konto, und wählen Sie "Jenkins verwalten" aus.
- Wählen Sie auf der Seite "Jenkins verwalten" die Option "Plug-Ins verwalten" aus.
- Filtern Sie die Liste, um das NodeJS-Plug-In zu suchen, und wählen Sie die Option "Installieren ohne Neustart" aus.
- Filtern Sie die Liste, um das Plug-In für die kontinuierliche Bereitstellung von VS Team Services zu finden, und wählen Sie die Option "Installieren ohne Neustart " aus.
- Wechseln Sie zurück zum Jenkins-Dashboard, und wählen Sie "Jenkins verwalten" aus.
- Wählen Sie "Globale Toolkonfiguration" aus. Suchen Sie NodeJS , und wählen Sie NodeJS-Installationen aus.
- Wählen Sie die Option "Automatisch installieren" aus, und geben Sie dann einen Namenwert ein.
- Wählen Sie Speichern aus.
Konfigurieren Sie ein Jenkins-Freestyle-Projekt für Node.js
- Wählen Sie "Neues Element" aus. Geben Sie einen Elementnamen ein.
- Wählen Sie das Projekt "Freestyle" aus. Wählen Sie OK aus.
- Wählen Sie auf der Registerkarte "Quellcodeverwaltung " Git aus, und geben Sie die Details des Repositorys und der Verzweigung ein, die Ihren App-Code enthalten.
- Wählen Sie auf der Registerkarte " Buildtriggers " "Umfrage-SCM " aus, und geben Sie den Zeitplan
H/03 * * * *ein, um das Git-Repository für Änderungen alle drei Minuten abzufragen. - Wählen Sie auf der Registerkarte "Buildumgebung" die Option "Node- und npm-bin/Ordner-Pfad bereitstellen" und dann den NodeJS-Installationswert aus. Lassen Sie die npmrc-Datei so eingestellt, dass die Systemstandardeinstellung verwendet wird.
- Wählen Sie auf der Registerkarte " Build " die Option "Shell ausführen " aus, und geben Sie den Befehl
npm installein, um sicherzustellen, dass alle Abhängigkeiten aktualisiert werden.
Konfigurieren der Integration von Jenkins für Azure DevOps Services
Hinweis
Stellen Sie sicher, dass das für die folgenden Schritte verwendete persönliche Zugriffstoken die Berechtigung "Release" (Lesen, Schreiben, Ausführen und Verwalten) in Azure DevOps Services enthält.
Erstellen Sie einen PAT in Ihrer Azure DevOps Services-Organisation, wenn Sie noch keines haben. Jenkins erfordert diese Informationen für den Zugriff auf Ihre Azure DevOps Services-Organisation. Achten Sie darauf, die Tokeninformationen für anstehende Schritte in diesem Abschnitt zu speichern.
Informationen zum Generieren eines Tokens finden Sie unter "Wie erstelle ich ein persönliches Zugriffstoken für Azure DevOps Services?".
Wählen Sie auf der Registerkarte "Aktionen nach dem Build" die Option "Aktion nach dem Erstellen hinzufügen" aus. Wählen Sie " Artefakte archiviert" aus.
Für Dateien zum Archivieren, geben Sie
**/*ein, um alle Dateien einzuschließen.Um eine weitere Aktion zu erstellen, wählen Sie die Aktion "Nach dem Erstellen hinzufügen" aus.
Wählen Sie "Trigger release" in TFS/Team Services aus. Geben Sie den URI für Ihre Azure DevOps Services-Organisation ein, z. B. https://{your-organization-name}.visualstudio.com.
Geben Sie den Projektnamen ein.
Wählen Sie einen Namen für die Releasepipeline aus. (Sie erstellen diese Releasepipeline später in Azure DevOps Services.)
Wählen Sie Anmeldeinformationen aus, um eine Verbindung mit Ihrer Azure DevOps Services- oder Azure DevOps Server-Umgebung herzustellen:
- Lassen Sie "Benutzername " leer, wenn Sie Azure DevOps Services verwenden.
- Geben Sie einen Benutzernamen und ein Kennwort ein, wenn Sie eine lokale Version von Azure DevOps Server verwenden.
Speichern Sie das Projekt Jenkins.
Erstellen eines Jenkins-Dienstendpunkts
Ein Dienstendpunkt ermöglicht Azure DevOps Services, eine Verbindung mit Jenkins herzustellen.
- Öffnen Sie die Seite "Dienste " in Azure DevOps Services, öffnen Sie die Liste " Neuer Dienstendpunkt ", und wählen Sie "Jenkins" aus.
- Geben Sie einen Namen für die Verbindung ein.
- Geben Sie die URL Ihres Jenkins-Servers ein, und wählen Sie die Option "Nicht vertrauenswürdige SSL-Zertifikate akzeptieren " aus. Eine Beispiel-URL ist http://{YourJenkinsURL}.westcentralus.cloudapp.azure.com.
- Geben Sie den Benutzernamen und das Kennwort für Ihr Jenkins-Konto ein.
- Wählen Sie "Verbindung überprüfen" aus, um zu überprüfen, ob die Informationen korrekt sind.
- Wählen Sie "OK" aus, um den Dienstendpunkt zu erstellen.
Erstellen einer Bereitstellungsgruppe für virtuelle Azure-Computer
Sie benötigen eine Bereitstellungsgruppe , um den Azure DevOps Services-Agent zu registrieren, damit die Releasepipeline auf Ihrem virtuellen Computer bereitgestellt werden kann. Bereitstellungsgruppen erleichtern das Definieren logischer Gruppen von Zielcomputern für die Bereitstellung und die Installation des erforderlichen Agents auf jedem Computer.
Hinweis
Achten Sie im folgenden Verfahren darauf, die erforderlichen Komponenten zu installieren und das Skript nicht mit sudo-Berechtigungen auszuführen.
- Öffnen Sie die Registerkarte "Versionen " des Build & Release-Hubs , öffnen Sie Bereitstellungsgruppen, und wählen Sie +Neu.
- Geben Sie einen Namen für die Bereitstellungsgruppe und eine optionale Beschreibung ein. Wählen Sie dann Erstellen aus.
- Wählen Sie das Betriebssystem für den virtuellen Bereitstellungszielcomputer aus. Wählen Sie beispielsweise Ubuntu 16.04+ aus.
- Klicken Sie auf Verwenden Sie für die Authentifizierung ein persönliches Zugriffstoken im Skript.
- Wählen Sie den Link " Systemvoraussetzungen" aus. Installieren Sie die erforderlichen Komponenten für Ihr Betriebssystem.
- Wählen Sie "Skript in Zwischenablage kopieren" aus, um das Skript zu kopieren.
- Melden Sie sich bei Ihrem virtuellen Bereitstellungszielcomputer an, und führen Sie das Skript aus. Führen Sie das Skript nicht mit sudo-Berechtigungen aus.
- Nach der Installation werden Sie zur Eingabe von Tags für Bereitstellungsgruppen aufgefordert. Übernehmen Sie die Standardeinstellungen.
- Überprüfen Sie in Azure DevOps Services unter Bereitstellungsgruppen die Ziele für Ihren neu registrierten virtuellen Computer in Ziele.
Erstellen einer Release-Pipeline für Azure Pipelines
Eine Releasepipeline gibt den Prozess an, den Azure Pipelines zum Bereitstellen der App verwendet. In diesem Beispiel führen Sie ein Shellskript aus.
So erstellen Sie die Releasepipeline in Azure-Pipelines:
- Öffnen Sie die Registerkarte "Versionen " des Build & Release-Hubs , und wählen Sie " Releasepipeline erstellen" aus.
- Wählen Sie die leere Vorlage aus, indem Sie mit einem leeren Verfahren beginnen.
- Wählen Sie im Abschnitt " Artefakte " + "Artefakt hinzufügen" und dann "Jenkins " für den Quelltyp aus. Wählen Sie Ihre Jenkins-Dienstendpunktverbindung aus. Wählen Sie dann den Jenkins-Quellauftrag und dann "Hinzufügen" aus.
- Wählen Sie das Auslassungszeichen neben "Umgebung 1" aus. Wählen Sie " Bereitstellungsgruppenphase hinzufügen" aus.
- Wählen Sie Ihre Bereitstellungsgruppe aus.
- Wählen Sie diese Option + aus, um eine Aufgabe zur Bereitstellungsgruppenphase hinzuzufügen.
- Wählen Sie die Shellskriptaufgabe und dann "Hinzufügen" aus. Die Shellskriptaufgabe stellt die Konfiguration für ein Skript bereit, das auf jedem Server ausgeführt werden soll, um Node.js zu installieren und die App zu starten.
- Geben Sie für Skriptpfad, $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh ein.
- Wählen Sie "Erweitert" aus, und aktivieren Sie dann " Arbeitsverzeichnis angeben".
- Für Arbeitsverzeichnis geben Sie $(System.DefaultWorkingDirectory)/Fabrikam-Node ein.
- Bearbeiten Sie den Namen der Release-Pipeline zu dem Namen, den Sie auf der Registerkarte "Aktionen nach dem Build" des Builds in Jenkins angegeben haben. Jenkins erfordert, dass dieser Name eine neue Version auslösen kann, wenn die Quellartefakte aktualisiert werden.
- Wählen Sie "Speichern" und dann "OK " aus, um die Releasepipeline zu speichern.
Ausführen von manuellen und durch CI ausgelösten Bereitstellungen
- Wählen Sie +Release aus, und wählen Sie "Release erstellen" aus.
- Wählen Sie den Build aus, den Sie in der hervorgehobenen Dropdownliste abgeschlossen haben, und wählen Sie Queue.
- Wählen Sie den Freigabelink in der Popupnachricht aus. Beispiel: " Release Release-1 wurde erstellt."
- Öffnen Sie die Registerkarte Protokolle, um die Ausgabe der Release-Konsole anzuzeigen.
- Öffnen Sie in Ihrem Browser die URL eines der Server, die Sie Ihrer Bereitstellungsgruppe hinzugefügt haben. Geben Sie z. B. http://{your-server-ip-address} ein.
- Gehen Sie zum Git-Quell-Repository und ändern Sie den Inhalt der h1-Überschrift in der Datei app/views/index.jade mit geändertem Text.
- Committen Sie Ihre Änderung.
- Nach ein paar Minuten wird auf der Releases-Seite von Azure DevOps eine neue Version erstellt. Öffnen Sie das Release, um den Fortschritt der Bereitstellung zu sehen. Glückwunsch!
Problembehandlung beim Jenkins-Plug-In
Wenn Fehler mit den Jenkins-Plug-Ins auftreten, geben Sie ein Problem in der JIRA von Jenkins für die jeweilige Komponente ein.
Nächste Schritte
In diesem Lernprogramm automatisieren Sie die Bereitstellung einer App auf Azure mithilfe von Jenkins für build und Azure DevOps Services für die Veröffentlichung. Sie haben gelernt, wie Sie:
- Erstellen Sie Ihre App in Jenkins.
- Konfigurieren Sie Jenkins für die Integration von Azure DevOps Services.
- Erstellen Sie eine Bereitstellungsgruppe für die virtuellen Azure-Computer.
- Erstellen Sie eine Azure-Pipeline, die die virtuellen Computer konfiguriert und die App bereitstellt.
Weitere Informationen zur Verwendung von Azure-Pipelines für build- und release-Schritte finden Sie hier.
Wenn Sie erfahren möchten, wie Sie eine YAML-basierte CI/CD-Pipeline für die Bereitstellung auf VMs erstellen, wechseln Sie zum nächsten Lernprogramm.