CI/CD Pipeline auf einem Raspberry Pi – Teil 1

von | 16.02.2019

Heute möchte ich Ihnen gerne ein kleines Experiment von mir vorstellen: Wie gut funktioniert es, auf einem Raspberry Pi eine Continuous Integration / Continuous Delivery (CI/CD) Pipeline aufzusetzen? Grundsätzlich lässt sich dieses Experiment auch mit GitLab oder Visual Studio Team Services kostenlos realisieren, jedoch sprechen für mich folgende Gründe für eine Pi-Realisierung:

  1. Volle Flexibilität über verfügbare Software und Softwareversionen
  2. Die Kosten sind verglichen mit gemieteten Servern inklusive Root-Zugang niedriger
  3. Zugangsdaten zur Ziel-Infrastruktur sind im lokalen Netz und nicht in der Cloud verfügbar
  4. Geek-Faktor!

Gerade der letzte Punkt hat mich dazu getrieben, das Ganze an einem Wochenende auszuprobieren – zusätzlich hatte ich endlich einen Grund, mir einen Raspberry Pi zu bestellen und auch für etwas Sinnvolles zu benutzen.

Raspberry Pi bestellen

Wenn Sie nicht schon einen besitzen, empfehle ich Ihnen den Kauf des aktuellen Modells: Raspberry Pi 3 B+. Es handelt sich um das leistungsstärkste Modell mit einem 64-Bit ARM Quad-Core Prozessor, der mit 1,4GHz taktet. Weiterhin besitzt der Pi 1GB RAM, Ethernet, WLAN , 4x USB 2.0 sowie einen HDMI-Anschluss. Kaufen kann man den Pi ziemlich einfach über Amazon. Ich empfehle dazu gleich auch ein Gehäuse mit passendem Netzteil zu kaufen – meins hat sogar einen kleinen aktiven Lüfter, der im langsamen Modus auch wirklich sehr leise ist. Weiterhin empfehle ich eine ausreichend große SD-Karte zu bestellen, ich habe eine 64GB große gekauft – schließlich soll ja genug Platz für die Builds vorhanden sein.

Hardware in Betrieb nehmen

Wenn Sie wie ich ein passendes Case gekauft haben, bauen Sie dieses auch am besten jetzt schon auf, dann ist der Pi gut geschützt.

Betriebssystem installieren und konfigurieren

Der Raspberry Pi kann mit verschiedenen Betriebssystemen betrieben werden: Windows 10 IOT, Raspbian Desktop, Raspbian Lite oder auch Ubuntu Core. Für unser Szenario reicht ein schlankes Linux ohne grafischen Desktop – somit wäre Raspbian Lite eine gute Wahl.

Image herunterladen

Gehen Sie einfach auf die offizielle Seite (https://www.raspberrypi.org/software/) und suchen Sie dort nach „Raspbian Stretch Lite“. Klicken Sie anschließend auf „Download Zip“:

Das Raspberry Pi Image herunterladen
Danach entpacken Sie das Zip in ein beliebiges Verzeichnis, so dass Sie in der Folge eine Datei mit [ZeitStempel]-raspbian-stretch-lite.img finden sollten. Bei mir heißt diese 2018-11-13-raspbian-stretch-lite.img.

Image auf SD-Karte brennen

Hierfür benötigen Sie ein passendes Kartenlesegerät und einen entsprechenden Anschluss an Ihrem Computer. Sollten Sie keinen Anschluss dafür haben, gibt es dafür passende USB-Adapter zu kaufen. Nachdem Sie die SD-Karte an den Computer angeschlossen haben, müssen Sie die SD-Karte mit dem Image beschreiben. Je nachdem auf welchem Betriebssystem Sie sich gerade befinden, müssen Sie andere Tools benutzen. Hier eine kleine Empfehlung für UI-basierte Tools:

Nachdem Sie das Image erfolgreich auf die SD-Karte kopiert haben, können Sie gleich weitermachen und den Raspberry Pi konfigurieren.

Raspberry konfigurieren

Für ein initiales Setup müssen Sie eine Tastatur und einen Bildschirm an den Raspberry Pi anschließen. Nutzen Sie dafür die entsprechenden USB- bzw. HDMI-Ports für Tastatur und Monitor. Wichtig: Schließen Sie die Peripherie an, bevor Sie den Pi durch das Anschließen des Netzteils starten.

Wenn nun der Pi mit Strom versorgt wird, sollte automatisch der Bootvorgang starten und eine Kommandozeile zum Login einladen. Die Zugangsdaten lauten:
Login: pi
Passwort: raspberry

Hinweis: Da das Tastaturlayout standardisiert ein englisches ist, sind – wenn Sie ein deutsches Tastaurlayout nutzen wollen – die Tasten Y und Z vertauscht – daher ist das Passwort quasi „raspberrz“.

Nun konfigurieren Sie den Pi über ein Tool mit dem Namen “raspi-config”. Geben Sie folgendes ins Terminal ein:

sudo raspi-config 

Falls Sie ein deutsches Tastaurlayout haben, geben Sie folgendes ein:

sudo raspißconfig

Nun öffnet sich das raspberry Konfigurationsmenü.

Das Raspberry Pi Konfigurationsmenü

Tastaturlayout konfigurieren

Wenn Sie nicht zufällig eine englische Tastatur benutzen, sollten Sie das Tastaturlayout anpassen. Wählen Sie dazu mit den Pfeiltasten den Menüpunkt „4 Localisation Options“ aus und drücken Sie anschließend Enter.

Im folgenden Menü wählen Sie „I3 Change Keyboard Layout“ und als Tastaturtyp „Generic 105-key (Intl) PC“. Nun müssen Sie im nächsten Dialog das Tastaturlayout auswählen. Nutzen Sie ein deutsches Layout, wählen Sie die Option “Other” und im Folgedialog das Land „Germany“. Danach wählen Sie das Keyboard Layout „German“.

In den folgenden Dialogen können Sie die Standardoptionen „The default for the keyboard layout“ und „No compose Key“ auswählen und jeweils mit Enter bestätigen. Wenn Sie nun die nächste Option einfach mit “No” beantworten, haben Sie Ihre Tastatur konfiguriert und können auf dem Pi zum Hauptmenü zurückkehren.

SSH konfigurieren

Da wir den Pi nur über SSH steuern wollen, müssen wir diese Option noch aktivieren. Wählen Sie dazu im Hauptmenü „5 Interface Options“ und dort anschließend den Punkt „P2 SSH“.

SSH konfigurieren auf der Raspberry Pi

Beantworten Sie die nachfolgende Frage, ob Sie wirklich SSH aktivieren wollen, mit „Yes“ und bestätigen Sie die Eingabe mit Enter.

Kennwort ändern

Damit nicht jeder auf den Raspberry Pi zugreifen kann, ändern Sie über den Menüpunkt „1 Change User Password“ das Kennwort.

Partition vergrößern

Als letztes vergrößern Sie noch die Partition, so dass die gesamte SD-Karte verwendet werden kann. Navigieren Sie dazu zum Menüpunkt „7 Advanced Options“ und wählen „Expand Filesystem“. Danach bestätigen Sie den Dialog mit “Ok”.

Die Partition vergrößern

Neustart

Damit sind Sie erst mal fertig mit der Konfiguration und können das Hauptmenü verlassen. Das funktioniert einfach, indem Sie mit der Pfeiltaste zweimal rechts auf den Punkt „<Finish>“ navigieren und mit Enter bestätigen. Jetzt können Sie den Pi neu starten:

sudo shutdown –r now

Jetzt sollten Sie sich mit passendem Tastaturlayout ganz normal anmelden können. Der Benutzername bleibt unverändert, nur das Passwort ist jetzt natürlich das von Ihnen neu vergebene.

SSH-Zugang testen

Spätestens jetzt sollten Sie den Pi in Ihr lokales Netz einbinden, am einfachsten natürlich mit einem Ethernet-Kabel. Wichtig: Sollten Sie Ihren Pi im WLAN betreiben, müssen Sie dafür noch Einstellungen über raspi-config durchführen. Da ich alles über LAN mache, habe ich mir die Schritte gespart.

Nun testen Sie bitte den SSH-Zugang. Dazu sollten Sie zuerst die IP-Adresse der Pi herausfinden:

Hostname –I

Bei mir kommt beispielsweise 192.168.0.55 raus. Wichtig: Es bietet sich an, dass der Pi eine feste IP-Adresse vom Router bekommt, damit Sie sich immer mit derselben Adresse verbinden können und nicht mühsam erst wieder herausfinden müssen, welche Adresse denn vergeben wurde.

Nun können Sie sich mit einem SSH Tool (unter Windows Putty, Mac und Linux haben standardmäßig einen SSH Client für die Kommandozeile) verbinden. Ich melde mich per pi@192.168.0.55 und mit meinem Passwort an. Wenn bei Ihnen alles geklappt hat, können Sie den Pi ausschalten, Maus und Tastatur wieder abschließen, und bequem von Ihrem Computer aus weiter arbeiten.

In Teil 2 des Experiments beschreibe ich Ihnen die Installation eines Build-Servers. Sie sind dann wieder dabei und machen mit?

 

Hinweise:

Interessieren Sie sich für weitere Tipps aus der Praxis? Testen Sie unseren wöchentlichen Newsletter mit interessanten Beiträgen, Downloads, Empfehlungen und aktuellem Wissen.

Wir suchen Softwareentwickler. Berufseinsteigerinnen, Entwickler mit einigen und Expertinnen mit vielen Jahren Erfahrung.

Hier finden Sie die anderen drei Teile der Serie von Peter Friedland:

t2informatik Blog: CI/CD Pipeline auf einem Raspberry Pi – Teil 2

CI/CD Pipeline auf einem Raspberry Pi – Teil 2

t2informatik Blog: CI/CD Pipeline auf einem Raspberry Pi – Teil 3

CI/CD Pipeline auf einem Raspberry Pi – Teil 3

t2informatik Blog: CI/CD Pipeline auf einem Raspberry Pi – Teil 4

CI/CD Pipeline auf einem Raspberry Pi – Teil 4

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.