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.
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