Dieser Artikel zeigt euch, wie ihr Jenkins auf eurem Linux installiert und einrichtet. Nachdem wir allgemein über Buildserver gesprochen haben, richten wir uns nun selbst einen ein.

Vorbereitung der Linuxumgebung

Hierfür habe ich mir eine neue virtuelle Maschine erstellt und verwende Debian 9 als Betriebssystem. Ich habe mit apt-get update und apt-get upgrade das System aktualisiert jedoch keine weiteren Änderungen durchgeführt.
Es handelt sich hierbei um ein ganz frisches System. Mit SSH habe ich mich am System angemeldet und arbeite via Konsole.

Installation von Jenkins vorbereiten

Notwendige Programme installieren

Als erstes ist Java als Laufzeitumgebung für Jenkins notwendig. Auf der Downloadseite finden wir Informationen darüber, welche Versionen unterstützt werden.
Ab der Version 2.164 können Java 8 oder 11 verwendet werden. Mit default-jre wird die Standard Java Laufzeitumgebung für Debian installiert. Derzeit ist das Open JDK. Es ist ebenfalls möglich die Javaumgebung von Oracle gezielt zu installieren. In diesem Beispiel verwende ich das default-jre bzw. OpenJDK.

# Installation der "Standard" JRE
apt-get install default-jre

# Installation einer expliziten OpenJDK-Version
apt-get install openjdk-8-jre

# Prüfen, ob Java korrekt installiert wurde
java -version

Hinweis: Derzeit werden nur Java 8 oder 11 unterstützt. Eine andere Version kann zu Fehlern oder Problemen führen.

Als nächstes installieren wir Git. Git ist unser Programm zur Verwaltung des Quellcodes. Die Installation führen wir folgendermaßen durch:

apt-get install git

# Prüfen, ob Git korrekt installiert wurde
git --version

Wenn die Version von Git (aktuell: git version 2.11.0) ausgegeben wurde, war die Installation erfolgreich.

Das wir Git im Standard installieren sollten, hat mit der neuen Oberfläche zu tun.
Die Oberfläche BlueOcean soll der neue „Standard“ für Jenkins werden. Ähnlich zu anderen Anbietern von CI/CD (Continuous Integration/Continuous Delivery) soll die Oberfläche intuitiv und einfach bedienbar sein. Weitere Informationen gibt es im Blogartikel zur Einführung von Blue Ocean.

Dabei ist wichtig zu wissen, dass ein Checkout eines Projekts nur noch via Git möglich ist. Das kommt daher, da nur Quellen wie Git, GitHub und Bitbucket oder einer „freien“ Git-URL ausgewählt werden können.
Die Oberfläche bietet andere Quellen wie SVN oder Mercurial (noch?) nicht an.

Blue Oceans Oberfläche von Jenkins, um ein neues Projekt anzulegen
Auswahl für ein neues Projekt in Jenkins Blue Ocean

Die klassische Oberfläche, welche immernoch verwendet werden kann, hat diese Einschränkung nicht. In der lässt sich jeder Schritt (inkl. Checkout bzw. laden des Quellcodes) individuell konfigurieren.

Klassische Oberfläche von Jenkins, um ein neues Projekt anzulegen
Klassische Oberfläche zur Projekterstellung in Jenkins

Optional: Weitere Programme/Laufzeitumgebungen

Die Grundprogramme (Java und Git) sind nun installiert. Je nach Projekt oder Buildscript sind weitere Anwendungen oder Bibliotheken notwendig. Da ich meine .NET Core-Projekte kompilieren möchte, benötige ich das .NET Core SDK. Das installieren wir folgendermaßen (Auszug aus der Webseite):

# Repository von Microsoft zur bekannten Liste hinzufügen
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/debian/9/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

# .NET Core SDK installieren
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

# Zum Test die installierte Version ausgeben
dotnet --version

Zudem arbeite ich, bei individuellen Scripts, sehr gerne mit Python. Daher installiere ich zusätzlich die aktuelle Version von Python. Meistens werden Python 2 und 3 zusammen mit Linux ausgeliefert:

# Installation von Python 2
apt-get install python

# Installation von Python 3
apt-get install python3

Sofern ihr weitere Programme oder Bibliotheken benötigt lohnt es sich, diese vorher zu installieren. Dadurch könnt ihr nach der Installation direkt loslegen mit der Konfiguration, ohne euch über notwendige Installationen (außer den vergessenen Programmen 😉 ) Gedanken machen zu müssen.

Jenkins installieren

Da die Voraussetzung (insbesondere die Java-Umgebung) geschaffen wurden, können wir nun Jenkins installieren. Auf der Downloadseite finden wir eine schnelle und kurze Anleitung. Im Handbuch sind weitere Informationen erhalten.

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.list.d/jenkins.list'

sudo apt-get update
sudo apt-get install jenkins

Um die Einrichtung abzuschließen müssen wir nun einen Browser öffnen. Standardmäßig wird Jenkins unter Port 8080 ausgeführt. Zugreifen können wir über den Hostnamen oder die IP-Adresse. Diese Informationen lassen sich via hostname oder ip address ausgeben. In meinem Fall rufe ich http://192.168.100.20:8080 auf. Es ist wichtig, den Port hinter dem Doppelpunkt anzugeben, ansonsten erreicht ihr die Seite nicht.

Ihr werdet anschließend folgende Seite sehen:

Seite zum Entsperren von Jenkins

Es gibt keinen Standardadministrator für Jenkins. Daher legt Jenkins ein Zufallspasswort in einer Datei auf dem Server ab. Die Idee dahinter ist, dass der Anwender, welcher Zugriff auf den Server hat, auch berechtigt ist, Jenkins zu installieren und administrieren. Mittels cat können wir den Wert auslesen und in der Oberfläche eintragen.

cat /var/lib/jenkins/secrets/initialAdminPassword
> a1234567ca694a63bbf222fa7abc260b

Anschließend werden wir gefragt, ob wir die „Standardplugins“ verwenden oder die Plugins selbst auswählen möchten. Es besteht die Möglichkeit, dass bei der linken Variante einige Plugins installiert werden, welche wir hinterher nicht benötigen.

Für einen schnellen Einstieg empfehle ich die „Standardkonfiguration“ zu verwenden. Dadurch sind die meisten Plugins vorhanden und wir können direkt loslegen.
Die rechte Variante empfehle ich für Anwender, die sich mit Jenkins auskennen und wissen, welche Plugins notwendig sind. Bestimmt gibt es andere Blogs, welche auf die optimale Einrichtung von Jenkins für Umgebung X (Java, Ruby, .NET..?) eingehen und erklären, welche Plugins lohnenswert sind, und welche nicht benötigt werden.

Auswählen der Plugins für Jenkins

Anschließend sehen wir den Installationsprozess der gewählten Plugins.

Der Installationsprozess grafisch dargestellt

Die anschließenden Dialoge dienen dazu einen ersten Benutzer anzulegen und die Jenkins URL zu definieren. Nachdem der Benutzer angelegt wurde, können wir uns damit anmelden.

Ihr werdet anschließend eine Seite vorfinden, welche keine Projekte vorweist. Nun seid ihr bereit zu starten.

Startseite nach der Anmeldung mit dem neuen Benutzer

Fazit

Dieser Artikel hat euch gezeigt, wie Jenkins grundsätzlich installiert und eingerichtet wird. Im zweiten Teil erstellen wir ein Projekt und lassen es automatisch prüfen und kompilieren. Habt ihr Anmerkungen zur Installation oder bestimmte Hinweise?


Bildnachweis: Unsplash.com