Mit dieser Anleitung kann die Continuous Integration Software Jenkins auf einer Synology DiskStation installiert und verwendet werdet werden.

Voraussetzung

Es muss bereits eine lauffähige Java Laufzeitumgebung auf der Synology DiskStation installiert worden sein.
Aktuell geht das wohl am einfachsten mit dem Java SE Embedded Package direkt über das DSM Paket-Zentrum.

Eine gute Anleitung dazu findet man auf dieser Seite:
http://pcloadletter.co.uk/2011/08/23/java-package-for-synology

Jenkins installieren

Jetzt kann die eigentliche Installation von Jenkins über die Shell (mit Root-Rechten) beginnen.
Dazu müssen nachfolgende Schritte ausgeführt werden.

1. Füge die Zeile jenkins:x:145:145:Jenkins:/var/lib/jenkins:/bin/sh in der Datei /etc/passwd ein

echo 'jenkins:x:145:145:Jenkins:/var/lib/jenkins:/bin/sh' >> /etc/passwd

2. Füge die Zeile jenkins:*:10933:0:99999:7::: in der Datei /etc/shaddow ein

echo 'jenkins:*:10933:0:99999:7:::' >> /etc/shadow

3. Füge die Zeile jenkins:x:145:jenkins in der Datei /etc/group ein

echo 'jenkins:x:145:jenkins' >> /etc/group

4. Erstelle das Jenkins Home-Directory Verzeichnis unter /opt/jenkins/data

mkdir -p /opt/jenkins/data

5. Erstelle einen Link unter /var/lib/jenkins auf den Pfad /opt/jenkins

ln -s /opt/jenkins /var/lib/jenkins

6. Setze die Besitzer- und Gruppenzugehörigkeit jenkins:jenkins für die Ordner /opt/jenkins und /opt/jenkins/data

chown jenkins:jenkins /opt/jenkins
chown jenkins:jenkins /opt/jenkins/data

7. Lade mittels wget Befehl die aktuelle Version der Jenkins Web-Anwendung herunter

wget -O /var/lib/jenkins/jenkins.war http://mirrors.jenkins-ci.org/war/latest/jenkins.war

Jenkins starten

Um Jenkins einfach starten zu können, kann ein Start-Script erstellt werden.

8. Datei /var/lib/jenkins/jenkins_start.sh im VI Editor öffnen

vi /var/lib/jenkins/jenkins_start.sh

9. Folgenden Inhalt in diese Datei einfügen

#!/bin/sh

NAME=jenkins
BASE_PATH=/var/lib/jenkins
DATA_PATH=$BASE_PATH/data
PID_FILE=$DATA_PATH/$NAME.pid
LOG_FILE=$DATA_PATH/$NAME.log

touch $PID_FILE
chown $NAME:$NAME $PID_FILE
su -s /bin/sh $NAME -c "
        cd /
        JENKINS_HOME=$DATA_PATH    \
        exec java -jar $BASE_PATH/jenkins.war $JENKINS_OPTS \
        </dev/null >>$LOG_FILE 2>&1 & echo \$! >$PID_FILE           
        "

10. Änderungen mittel ESC und :wq speichern

11. Für die neu erzeugte Datei jenkins_start.sh müssen jetzt noch die Zugrifsrechte angepasst werden

chmod 755 /var/lib/jenkins/jenkins_start.sh

12. Datei ausführen um Jenkins zu starten

/var/lib/jenkins/jenkins_start.sh

Jetzt sollte die WAR-Datei entpackt und der Jenkins Web-Server (Jetty) gestartet werden.
Vor allem beim ersten Start, kann es eine Zeit lang dauern, bis der Jenkins Web-Server komplett gestartet und verfübar ist.

War das Starten erfolgreich, sollte folgender Eintrag in der Log-Datei /var/lib/jenkins/jenkins.log zu finden sein.

INFO: Jenkins is fully up and running

13. Nun kann die Jenkins Anwendung im Browser über die Adresse http://SYNOLOGY-NAS-IP:8080 aufgerufen werden.

Jenkins automatisch starten

Wenn Jenkins automatisch beim Starten der Synology Diskstation mitgestartet werden soll, kann dies über ein simples Init-Script erfolgen.

Das Script findet man hier:
https://github.com/mesche/diskstation-scripts/blob/master/jenkins-service-scripts/S99jenkins.sh

Dieses muss unter folgendem Pfad installiert werden

/usr/local/etc/rc.d/S99jenkins.sh

Es kann auch unter /usr/syno/etc.defaults/rc.d/ installiert werden, jedoch wird dann die Datei nach einem Systemupdate wieder gelöscht.

Nicht vergessen die Dateirechte anzupassen, damit das Script auch ausgeführt werden kann.

chmod 755 /usr/local/etc/rc.d/S99jenkins.sh

Beim nächsten Start sollte die Jenkins Anwendung automatisch verfübar sein.

Jenkins CI (oder Hudson) auf der Synology DiskStation installieren (Anleitung)

3 Gedanken zu „Jenkins CI (oder Hudson) auf der Synology DiskStation installieren (Anleitung)

  • Tolle Anleitung. Hat alles super funktioniert.

    Allerdings hat ein DSM Update von Version 5 auf Version 5.1 einfach die gesamte Installation entfernt (nachdem Update existiert kein /opt Verzeichnis mehr). Gibt es einen alternativen Installationspfad? Ich war nicht in der Lage herauszufinden welcher Pfad geeignet wäre, der nicht bei Updates wieder entfernt wird.

  • Hi Markus,

    super Anleitung, Danke! Leider läuft der Tomcat als Paket nicht zufriedenstellend, und so habe ich jetzt auch den Weg genommen, Jenkins direkt zu installieren.
    Was bei mir nicht funktioniert ist der automatische Start. Ich habe den DSM 5.1 laufen. Gab es dort ein Update, was die Startscripte in rc.d betrifft?

    VG
    Jens

  • Habe leider bisher auch keine Lösungg gefunden! Nach jedem Update muss dies leider erneut eingerichtet werden

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.