Wie zu Installieren und zu Verwenden Jenkins zu Bauen, ein CI/CD-Pipeline

0
94

Für software-Unternehmen nach agilen Entwicklungsprozess, Freigabe von software jeder Tag ist ein intensiver Prozess. Jenkins ist ein Werkzeug, das kann beschleunigen Sie Ihren workflow durch die Automatisierung viele wiederkehrende Aufgaben, wie das erstellen, testen und freigeben.

Was Ist Jenkins?

Jenkins wurde ursprünglich gebaut, um zu dienen einem einzigen Zweck:—automatisieren Sie die Erstellung und das testen von nächtlichen software-builds. Neu verpflichtet werden müssen, integriert der master-Zweig regelmäßig (oft als “continuous integration”), die oft mit schweren Prüfung, um sicherzustellen, dass alles reibungslos läuft. Tun, die einmal in der Woche ist eine Sache, aber wenn Sie eine Integration auch mehrmals am Tag, es ist besser für alle zu haben, dass ein automatischer Prozess.

Jenkins und andere CI/CD-Lösungen, wie es, in diesen Prozess beschleunigen. Man kann es wie eine automatisierte shell-Skript. Zum Beispiel, um eine Freigabe ein neuer build der app Reagieren, müssen Sie möglicherweise führen Sie npm install, npm laufen, bauen, führen Sie eine Test-suite, wie den Scherz zu überprüfen, dass der neue build übergibt alle tests. Wenn es erfolgreich ist, möchten Sie vielleicht, um es zu senden über, um eine Test-Umgebung für die manuelle überprüfung, oder einfach nur die Veröffentlichung einer neuen release direkt. Alle diese Befehle können Sie script ganz einfach.

Jenkins verarbeiten kann, laufen alle diese Aufgaben als Teil einer pipeline. Wenn Jenkins erkennt änderungen an den Quell-Kontrolle (entweder auf master oder ein feature branch), wird es beginnen die automatisierte pipeline, und laufen durch jede Aufgabe, die Sie gegeben haben es. Einige Aufgaben sind so einfach wie bash-Befehle, andere Aufgaben kann die Schnittstelle mit einem externen Dienst wie Jira, Git, oder Ihre E-Mail-Anbieter. Jenkins ist auch voll erweiterbar mit plugins, und können richtig gemacht werden, um zu tun, was immer Sie möchten.

Jenkins hat zwei major-releases, Blauen Ozean, und classic. Blue Ocean ist mehr die jüngsten, und verfügt über eine optimierte Benutzeroberfläche Erfahrung, dass das erstellen von pipelines viel einfacher. Wir werden mit Blue Ocean für diesen guide, aber die meisten die gleichen Konzepte gelten für beide Versionen von Jenkins.

Installation Von Jenkins

Jenkin-binaries sind verfügbar für mehrere Betriebssysteme, aber in der Regel nicht aus dem Standard-package-Manager. Wenn Sie auf Ubuntu, können Sie herunterladen und installieren Sie mit den folgenden paar Befehle:

wget -q -O – https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add –
sudo sh -c ‘echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.Liste.d/jenkins.Liste’
sudo apt-get update
sudo apt-get install jenkins

Um Dinge zu machen, unabhängig von der Plattform, obwohl, wir werden laufen Jenkins mit Docker, das ist das, was Jenkins empfiehlt sowieso.

Die Installation Von Docker

Docker ist eine Plattform zum ausführen von apps im Container”;” Der container enthält alle notwendigen Abhängigkeiten, und wird sicherstellen, dass die app ausgeführt wird, wird die gleiche, unabhängig von der Basis-Betriebssystem—alles, was Sie tun müssen, ist installieren Sie das Andockfenster für Ihr system, und führen Sie ein paar Befehle.

Für Ubuntu, müssen Sie installieren einige Voraussetzungen:

sudo apt install apt-transport-https ca-certificates curl-software-properties-common

Dann fügen Sie das Andockfenster ‘ s GPG-Schlüssel:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Und fügen Sie den repo selbst:

sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable”

Aktualisieren Sie Ihre Quellen:

apt update

Und schließlich, installieren Sie das Andockfenster von apt:

sudo apt install docker-ce

Andockfenster sollte jetzt ausgeführt werden auf Ihrem system, die Sie überprüfen können, mit systemctl.

Einrichten Jenkins

Mit Docker installiert ist und läuft, können Sie die Docker-container für Jenkins. Zuerst müssen Sie ein bridged-Netzwerk für die Container zu kommunizieren:

docker Netzwerk erstellen jenkins

Andockfenster ist von Natur aus vergänglich—alle Daten, die sich auf Container werden gelöscht, wenn die Behälter abgestellt sind. Um dies zu verhindern, werden Sie wollen, um Daten zu speichern, die auf Docker Bände, die bestehen auf der Festplatte. Sie müssen zwei Bänden, einer für einige TLS-certs-Jenkins-Verbindung mit Docker, und die andere für alle Ihre Jenkins-Daten. Diese werden verpflichtet, den container zur Laufzeit.

Andockfenster volume erstellen von jenkins-docker-certs
Andockfenster volume erstellen von jenkins-Daten

Jenkins eigentlich braucht, um in der Lage zu laufen Docker als Teil seiner Arbeit, die zum einrichten der build-Umgebung. Dies ist nicht möglich mit normalen Docker, so zu gestalten, dass die ordnungsgemäße Funktion, die Sie ausführen müssen, “Andockfenster” im Andockfenster” oder DinD. Der folgende Befehl wird ausgeführt, Docker ‘ s offizielle docker:dind container, binden Sie das Netzwerk und die volumes, die Sie in den vorherigen Schritten erstellt, um es, und veröffentlichen Sie es als Dienst läuft auf port 2376 für die Jenkins-container zu verwenden. Du bist frei, ändern Sie diesen Anschluss, wenn Sie wollen, aber Sie haben Sie zu ändern, im nächsten Schritt, wie gut.

docker container laufen –name jenkins-Andockfenster –rm –detach
–privilegierte –Netzwerk jenkins –Netzwerk-alias Andockfenster
–env DOCKER_TLS_CERTDIR=/certs
–volume jenkins-docker-CERT:/certs/client
–volume jenkins-Daten ein:/var/jenkins_home
– veröffentlichen 2376:2376 Andockfenster:dind

Mit einrichten können Sie die jenkinsci/blueocean container mit dem folgenden Befehl:

docker container laufen –name jenkins-blueocean –rm –detach
–Netzwerk jenkins –env DOCKER_HOST=tcp://Andockfenster:2376
–env DOCKER_CERT_PATH=/certs/client –env DOCKER_TLS_VERIFY=1
–volume jenkins-Daten ein:/var/jenkins_home
–volume jenkins-docker-CERT:/certs/client:ro
– veröffentlichen 8080:8080 –veröffentlichen 50000:50000 jenkinsci/blueocean

Dies hängt im Netzwerk und Laufwerke, legen Sie die DOCKER_HOST variable auf den port, DinD ausgeführt wird, und veröffentlichen Sie den Dienst auf port 8080, was können Sie ändern, wenn es nicht kostenlos. (Das format ist host:container.) Es gibt auch Jenkin Verwaltungs-Verbindung auf port 50000, wenn Sie planen, die Einrichtung eines master-Jenkins-server mit mehreren distributed baut die Verbindung zu es.

Sobald Jenkins ist und läuft, wird es zugänglich sein, die über einen browser auf port 8080 der host-Maschine. Sie benötigen dazu ein bisschen von setup vor der Jenkins ist voll nutzbar, von denen die erste ist die Authentifizierung selbst zu beweisen, du bist der Besitzer des Servers, und nicht ein bot Angriff auf eine verwundbare web-interface.

Geben Sie ein Kennwort gespeichert in /var/jenkins_home/, die Teil des Docker-Volumen. Um Zugriff zu erhalten, die Sie müssen ausführen Katze im inneren der Docker-container:

docker-container exec -es jenkins-blueocean cat /var/jenkins_home/Geheimnisse/initialAdminPassword

Dies wird drucken Sie das Kennwort ein, die Sie kopieren können, und beginnen, den rest der Installation.

Sie werden aufgefordert, konfigurieren Sie Ihren admin-Benutzernamen und Passwort, installieren von verschiedenen Plug-ins. Auswählen von “Installieren der Empfohlenen Plugins” wird nur installiert eine Menge von der Gemeinschaft empfohlenen zu starten. Du bist immer frei, zu installieren, mehr dazu später.

Erstellen einer Pipeline

Sobald Sie die Einrichtung Jenkins, Sie werden begrüßt mit den folgenden Willkommensbildschirm. Klicken Sie auf “Erstellen Sie Eine Neue Pipeline”, um loszulegen.

Sie müssen wählen, wo Sie Ihren code gespeichert ist. Sie link zu Ihrem Github-oder BitBucket-account direkt mit einem access-key.

Aber eine bessere Lösung ist, einfach wählen Sie ” generic “Git.” Geben Sie in das repository-URL, und Jenkins wird Ihnen der öffentliche Schlüssel. Da Jenkins in der Lage ist, verpflichtet (und immer commits änderungen an der pipeline-Konfiguration), sollten Sie erstellen Sie eine neue service-Benutzer und fügen Sie den öffentlichen Schlüssel dazu.

Jenkins wird eine zweite Verbindung zu Git, dann bringen Sie Sie zu einer Seite, wo können Sie den pipeline-Einstellungen. Jenkins speichert alle von der pipeline-Konfiguration in einem Jenkinsfile, platziert an der Wurzel des Projektarchivs. Wenn Sie Aktualisierungen vornehmen, um die pipeline im editor, Jenkins ein commit für die änderung Ihrer Jenkinsfile.

Jede pipeline wird ein paar verschiedene Phasen, wie z.B. Erstellen, prüfen oder Bereitstellen, die enthalten die einzelnen Schritte. Diese können alle möglichen Dinge, wie das senden von E-Mails, die Interaktion mit anderen services wie Jira und Git, und zu koordinieren und den Fluss der anderen Schritte, aber Sie werden am häufigsten nutzen diese, um auszuführen, einfache shell-Skripte. Fehler bei der Rückkehr der diese Skripte führen die pipeline zu scheitern.

Vor dem hinzufügen jeder Stufe, werden Sie wollen, konfigurieren Sie die Umgebungseinstellungen. In der Regel verwenden Sie einen Docker-container, wie z.B. Knoten:neueste.

Für dieses Beispiel, erstellen wir eine Node-basierte web-app. Einfach das hinzufügen in zwei Schritten für npm installieren und npm run build ist alles, was notwendig ist. Jenkins wird diese Befehle auszuführen, und bewegen Sie auf die nächste Stufe, mit der build-Artefakte im Ort. Für die Testphase, die Einrichtung eines shell-Skripts ausführen Scherz wird verlangen, dass alle tests zu übergeben, die für das bauen, um erfolgreich zu sein.

Jenkins kann mehrere Stufen parallel, die ist nützlich, wenn Sie testen müssen, die auf mehreren verschiedenen Plattformen. Können Sie ein “Test” auf Linux” und “Test-Windows” – Bühne, und haben Sie gleichzeitig ausgeführt werden, so dass Sie nicht warten auf eine beginnen der anderen. Wenn entweder einer ausfällt, die Leitung wird immer noch nicht.

Sobald Sie mit der Bearbeitung fertig sind, Jenkins wird automatisch starten Sie Ihre pipeline. Wenn Sie darauf klicken für mehr info, können Sie sehen, die bauen die Fortschritte durch die Stadien.

Die Obere Leiste wird rot, wenn ein Fehler vorliegt, und grün, wenn alles erfolgreich ist. Wenn Sie in Fehler, Sie können klicken Sie auf die problematischen Phasen zum anzeigen der Ausgabe in der Konsole Befehle, wodurch die pipeline zu scheitern. Sie werden auch prüfen wollen, Ihre Umwelt-Konfiguration, um sicherzustellen, dass alle benötigten Werkzeuge installiert sind. (Möchten Sie vielleicht, um Ihre eigene Docker-container für Ihre baut.)