Blog

Leiser Start von Jenkins

DEC 12, 2017

Verhindern, dass Jenkins nach einem Neustart Jobs ausführt

Thierry Lacour

A Belgian working from Malmö. Thierry has a Bachelor’s degree in Application Development and has been with us since 2015 as an Automation Toolsmith. He enjoys computer and tabletop gaming and is an infinite source of optimism and humor. A good man to have in a crisis.

Ihr möchtet nicht immer, dass Jenkins direkt nach dem Start Jobs ausführt. Leider gehört ein Start im Ruhemodus nicht zu den integrierten Funktionen – außer ihr verwendet CloudBees Jenkins Enterprise. Doch ein cleveres Skript kann fast jedes Problem lösen.

In diesem kurzen Beitrag geht es darum, Jenkins im Ruhemodus zu starten, damit keine Builds ausgeführt werden. Nach einer Reihe von Upgrades wollten wir prüfen, ob Jenkins korrekt konfiguriert war. Gleichzeitig sollten keine Builds starten, während wir noch beschäftigt waren.

Als Lösung habe ich ein einfaches Groovy-Skript zusammengestellt, das Jenkins in den Ruhemodus versetzt. Als Initialisierungsskript eingerichtet, startet Jenkins im Ruhemodus. Später habe ich das Skript erweitert, sodass es Jenkins nach einigen Minuten auch wieder aktivieren kann:

import jenkins.model.Jenkins import hudson.security.ACL // Go into quiet mode Jenkins.instance.doQuietDown() // Wake up after an async wait Thread.start {   // doCancelQuietDown requires admin privileges   ACL.impersonate(ACL.SYSTEM)   // Sleep 5 minutes, in milliseconds   Thread.sleep(5 * 60 * 1000)  Jenkins.instance.doCancelQuietDown() }

Um es als Jenkins-Initialisierungsskript einzurichten, speichert es als $JENKINS_HOME/init.groovy oder legt es als *.groovy-Datei im Verzeichnis $JENKINS_HOME/init.groovy.d/ ab.

Nach einem Neustart startet Jenkins nun im Ruhemodus. Das erkennt ihr an der großen roten Benachrichtigung oben auf der Seite: „Jenkins wird gleich heruntergefahren“. Keine Sorge, das passiert nicht. Die Meldung verschwindet, sobald der Ruhemodus wieder deaktiviert wird.

  • CI/CD

Subscribe to our newsletter