Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Virtualisierung mit Docker

Backend mit Jenkins aufbauen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Jenkins ist die beliebteste Continuous-Integration-Plattform und bietet ideale Synergien im Zusammenhang mit Docker. Sehen Sie, wie sich Jenkins mit Docker bereitstellen und Docker als Buildserver nutzen lässt.

Transkript

Die Software Jenkins und die Software Docker werden beide unweigerlich mit dem Begriff Continous Integration zusammengebracht. Letztendlich handelt es sich nicht um ein Entweder-oder, sondern besonders um ein Miteinander. Wie Sie zukünftig also Docker mit Jenkins nutzen können, ist nun Teil des folgenden Videos. Zunächst möchte ich Ihnen einen Überblick über den Butler mit dem Namen Jenkins geben. Denn Jenkins ist heute die bekannteste Continuos Integration-Plattform. Als solche ist es eine Art Workflow-Engine, mit der verschiedenste Aufgaben automatisiert ausgeführt werden können. Der typischte Anwendungsfall allerdings ist es Code in Artefakte umzuwandeln, also Code zusammen zu bauen. Das Besondere dabei an Jenkins ist, dass es sich um keine sehr komplexe Anwendung handelt, sondern um einen relativ einfach gestrickten Java-Server. Da dieser Java-Server lediglich das Dateisystem als permanenten Speicher benutzt, ist eine Installation von Jenkins auch entsprechend einfach. Für die Docker-Plattform entsprechend gibt es auch ein offizielles Jenkins-Image. Dies ist erreichbar über den Begriff Jenkins. Wichtig ist hier das Versionierungskonzept zu verstehen. Denn im Projekt Jenkins gibt es unterschiedliche Versionen, die zur Verfügung stehen. Zum einen die Version latest, bei der es sich um die letzte stabile Version von Jenkins handelt. Während es sich bei der Version weekly um die möglichst neueste Version von Jenkins handelt, die freigegeben worden ist. Um Jenkins also nun auf meiner Docker-Maschine bereitzustellen, verwende ich hier die Konvention jenkins weekly um die möglichst neueste Version zu verwenden. Des Weiteren gebe ich den Port 8080 des Containers nach außen auf die Host-Maschine frei. Zuletzt vergebe ich noch den Namen Jenkins und führe das Ganze nun aus. Auf der Konsole sehe ich nun entsprechend den Log, der beim Hochfahren von Jenkins entsteht. Rufe ich diesen Port nun im Browser auf, so präsentiert sich mir entsprechend hier das Jenkins-Webinterface, mit dem ich nun mit Jenkins arbeiten kann. Ich habe nun also innerhalb weniger Minuten Jenkins auf Docker installiert. Das ist aber nicht der einzige Punkt, wie sich Docker mit Jenkins integrieren kann. Denn letztendlich ist es Sinn und Zweck des Ganzen, Jenkins dafür zu nutzen, um Docker fern zu steuern. Dabei hilft das Jenkins-Plug-in. Mit diesem ist es mir möglich Docker so zu orchestrieren, dass ich zukünftig dynamische Bildserver nutzen kann. Somit kann ich also garantieren, dass letztendlich immer eine saubere Installation dafür verantwortlich ist, dass meine Projekte sauber gebaut werden können. In der Praxis sieht man aber auch viele Konstrukte, die dafür verwendet werden um automatisiert bestimmte Maschinen bereitzustellen, wie Thin Client Maschinen für Remote Desktops, oder auch andere fertige Images. Damit das Jenkins-Plugin zukünftig auf meinen Docker-Host zugreifen kann, muss ich noch einige Vorbereitungen treffen. Denn Boot2Docker ist standardmäßig so eingestellt, dass das Ganze nicht funktionieren kann. Mit Hilfe der Profile- Konfiguration von Boot2Docker, muss ich dafür sorgen, dass die Docker-tls-Verschlüsselung standardmäßig ausgschaltet ist. Denn das Docker-Plugin ist zum heutigen Zeitpunkt nicht kompatibel mit dieser Verschlüsselung. Ich habe also hier über die Umgebungsvariable DOCKER_TLS auf no gesetzt. Sobald ich dies getan habe, muss der Boot2Docker-Host neu gestartet werden. Als Nächstes muss ich überprüfen, dass der Docker-Servicedienst auch mit einem Port auf tcp erreichbar ist. Wenn ich also nun den Docker-Prozess habe, so muss hier zusätzlich die Angabe tcp und der Port 2375 in diesem Fall existieren. Auf anderen Linux-Distributionen wie beispielsweise Ubuntu, CentOS kann dies über die Einstellung des Dienstes und der Umgebungsvariable DOCKER_OPTS und der Referenz auf genau diesen Abschnitt entsprechend gelöst werden. Zu guter Letzt benötige ich noch ein Image mit dem das Jenkins-Plugin arbeiten kann. Als gutes Beispiel und vorkonfiguriert hierfür eignet sich das Image evarga/jenkins-slave. Als Nächstes muss ich nun das Jenkins- Plugin in Jenkins selbst installieren. Dafür navigiere ich über Jenkins verwalten in Plugins verwalten und gehe dort auf den Reiter Verfügbar. Ich filtere nun nach Docker und wähle entsprechend das Docker-Plugin und installiere es ohne Neustart. Ich kehre nun zu Jenkins verwalten zurück und ändere nun die Systemkonfiguration. An dieser Stelle muss ich nun meinen Docker-Host einpflegen. Dieser befindet sich unter Cloud Neue Cloud hinzufügen Docker. Ich vergebe hier also einen Namen und referenziere zusätzlich entsprechend die URL des Docker-Hosts. Wohlgemerkt der Port 2375. Ich teste nun die Verbindung. Wenn alles klappt, sehe ich die Version meines Docker-Hosts. Damit Jenkins nun mit diesem Docker-Host arbeiten kann, muss ich zusätzlich ein Image hinzufügen. Hier muss also das Image von evarga/jenkins-slave verwendet werden oder alternativ ein Anderes, das sich als SSH-Host eignet. Ich vergebe nun ein Label wie beispielsweise testslave und muss nun die Zugangsdaten für dieses Image eintragen. Diese sind standardmäßig Benutzername Jenkins und Passwort Jenkins. Als nächstes muss noch der Ort für Jenkins angegeben werden, in den geschrieben werden darf, in diesem Fall /home/jenkins und schon ist das Ganze soweit korrekt konfiguriert. Ich speichere. Nun ist es an der Zeit Jenkins eine Aufgabe zu geben, die innerhalb eines Docker- Containers ausgeführt wird. Ich lege also ein neues Element an, wähle ein "Free-Style"-Softwareprojekt und benenne es mit dem Namen Test Projekt. Ich bestätige mit Ok. Nun ist es wichtig, beim Label-Ausdruck entsprechend hier testslave anzugeben, damit der richtige Container gefunden wird. Als nächstes gebe ich Jenkins noch eine Aufgabe, die in diesem Container durchgeführt werden soll. Beispielsweise auf der Shell den echo-Befehl "Hello world" auszuführen. Ich speichere nun und um das Ganze nun zu starten, wähle ich Jetzt bauen. Der Bildverlauf präsentiert sich auf der linken Seite. In der Zwischenzeit wird also nun im Docker ein Container hochgefahren, in dem der echo-Befehl ausgeführt wird. An der Stelle sieht man nun die ID dieses Containers. Der Befehl ist gestartet und der Container wird ausgeführt. Der Durchlauf war erfolgreich und ich kann nun anhand des Console Output sehen, was innerhalb dieses Containers ausgeführt wurde. Als Referenz sehe ich auch noch einmal, welche Maschine dafür genutzt wurde. Das Praktische an diesem Vorgang ist, dass diese Maschine automatisch wieder auf dem Docker-Host entfernt wird. In den letzten Minuten haben Sie mit mir also gemeinsam Jenkins in Docker installiert, Jenkins mit Docker integriert und mit Hilfe von Jenkins vollautomatisiert einen Prozess durchgeführt.

Virtualisierung mit Docker

Steigen Sie in die Container-Virtualisierung ein und entdecken Sie einfaches Prototyping neuer und unkomplizierte Skalierung bestehender Anwendungen.

3 Std. 36 min (36 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!