CI/CD Pipeline auf einem Raspberry Pi – Teil 2

von | 23.02.2019 | Softwareentwicklung | 0 Kommentare

Nachdem wir uns in Teil 1 vor allem um die Einrichtung und Konfiguration gekümmert haben, möchte ich in Teil 2 des Experiments die Installation eines Build-Servers auf dem Raspberry Pi beschreiben. Ich habe mich an dieser Stelle für Jenkins entschieden, da Jenkins OpenSource und kostenlos ist, und die Installation relativ leicht funktioniert.

Die Installation von Jenkins

Verbinden Sie bitte Ihren Raspberry Pi per SSH und aktualisieren Sie zu Beginn die Grundpakete. Geben Sie dafür bitte einfach folgende Befehle in die Konsole ein:

sudo apt-get update
sudo apt-get upgrade

Bestätigen Sie die jeweiligen Nachfragen mit Enter.

Java installieren

Als nächstes benötigen Sie eine Java-Installation, denn Jenkins basiert darauf. Ich empfehle Ihnen – auch aufgrund aktueller Lizenzierungsprobleme mit Oracle – die Installation von OpenJDK:

sudo apt install default-jdk

Zum Testen rufen Sie einfach die entsprechende Version auf:

java –version

Sollten Sie hier auf ein Problem mit der Fehlermeldung „Error: missing `server‘ JVM at `/usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/server/libjvm.so‘.“ stoßen, hat mir folgender Thread weitergeholfen: https://www.raspberrypi.org/forums/viewtopic.php?t=197824

Ich habe folgende Kommandos ausgeführt, dann lief es:

sudo mv /usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/client /usr/lib/jvm/java-8-openjdk-armhf/jre/lib/arm/server
sudo apt-get purge openjdk-8-jre-headless
sudo apt-get install openjdk-8-jre-headless
sudo apt-get install openjdk-8-jre
sudo apt-get install default-jre
sudo apt-get install default-jdk

Nun sollte der Aufruf von „java –version“ eine erfolgreiche Versionsinformation liefern und Sie können Jenkins installieren. Stellen Sie dazu eine weitere Paketquelle von Jenkins bereit und installieren Sie den Server über die Paketverwaltung:

wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins –y

Nun sollte Jenkins installiert sein und bereits laufen. Prüfen Sie dazu bitte:

systemctl status jenkins.service

Dieser Befehl gibt den Status des Jenkins-Dienstes aus; in der Art sollte dort folgendes stehen:

● jenkins.service - LSB: Start Jenkins at boot time
   Loaded: loaded (/etc/init.d/jenkins; generated; vendor preset: enabled)
   Active: active (exited) since Wed 2017-12-27 22:14:45 +08; 4min 40s ago
     Docs: man:systemd-sysv-generator(8)
 
Dec 27 22:14:43 raspberrypi systemd[1]: Starting LSB: Start Jenkins at boot time...
Dec 27 22:14:43 raspberrypi jenkins[1670]: Correct java version found
Dec 27 22:14:43 raspberrypi su[1700]: Successful su for jenkins by root
Dec 27 22:14:43 raspberrypi su[1700]: + ??? root:jenkins
Dec 27 22:14:43 raspberrypi su[1700]: pam_unix(su:session): session opened for user jenkins by (uid=0)
Dec 27 22:14:45 raspberrypi jenkins[1670]: Starting Jenkins Automation Server: jenkins.
Dec 27 22:14:45 raspberrypi systemd[1]: Started LSB: Start Jenkins at boot time.

Sollte dies der Fall sein, können Sie von Ihrem Computer aus per Browser die Jenkins-Weboberfläche bereits öffnen: http://[ip-adresse-des-pi]:8080. Gegebenenfalls benötigen Sie einige Sekunden Geduld bis alles initial geladen wird.

Getting Jenkins started

Als nächstes dürfen Sie die Jenkins-Instanz entsperren. Dazu gilt es einen speziellen Schlüssel herauszusuchen und in das Eingabefeld entsprechend einzufügen:

Unlock Jenkins

Den Inhalt der Datei holen Sie sich per SSH direkt von der Raspberry Pi:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

Den ausgegebenen Schlüssel kopieren Sie einfach aus dem Terminal in das Eingabefeld und klicken auf „Continue“.

Die Installation der Plugins

Im folgenden Screen entscheiden Sie sich bitte für „install suggested plugins“. Jenkins installiert automatisch alle Plugins nacheinander. Das kann einige Minuten dauern.

Getting Started

Hinweis: Bei meiner Installation wurde die Installation einiger Plugins als fehlerhaft hervorgehoben. In Jenkins selbst konnte ich aber keinerlei Probleme identifizieren; lassen Sie sich also ggf. davon nicht beirren: fehlende Plugins lassen sich auch später nachinstallieren.

Der initiale User

Nun geben Sie noch die Daten für den initialen User ein:

Create First Admin User

Jetzt sollten Sie bereits die Hauptseite von Jenkins sehen, die jetzt komplett eingerichtet ist:

Welcome to Jenkins!

Und schon sind Sie fertig.

In Teil 3 des Experiments beschreibe ich Ihnen, wie Sie den Build-Server verwenden und einen Build-Job erzeugen können. Sind Sie dann auch wieder dabei? Hier geht es zu Teil 3.

 

Hinweise:

Peter Friedland hat im t2informatik Blog einige weitere Beiträge veröffentlicht, u. a.

Performance-Optimierung für WPF Anwendungen
WebApps in der Adresszeile des Browsers
Warum ich bei Godot gelandet bin
Avalonia UI – Cross-Platform WPF Anwendungen mit .NET Core entwickeln

Übrigens: t2informatik sucht nach Unterstützung.

Peter Friedland
Peter Friedland

t2informatik GmbH

Peter Friedland ist bei der t2informatik GmbH als Software Consultant tätig. In verschiedenen Kundenprojekten entwickelt er innovative Lösungen in enger Zusammenarbeit mit Partnern und den Ansprechpartnern vor Ort. Und ab und an bloggt er auch.