Förhindra att Jenkins kör jobb efter en omstart
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.
Du vill inte alltid att Jenkins ska börja köra jobb direkt efter uppstart. Tyvärr är det ingen inbyggd funktion att starta i viloläge, om du inte kör CloudBees Jenkins Enterprise. Men det finns få problem som ett smart skript inte kan lösa.
Det här är ett kort inlägg om hur du får Jenkins att starta i tyst läge, så att den inte kör några byggen. Efter en serie uppgraderingar ville vi kontrollera att Jenkins var korrekt konfigurerat. Däremot ville vi inte att byggen skulle börja köras medan vi fortfarande arbetade.
För att lösa detta satte jag ihop ett enkelt Groovy-skript som försätter Jenkins i tyst läge. Genom att konfigurera det som ett initialiseringsskript får vi en sovande Jenkins vid uppstart. Senare byggde jag ut skriptet så att det även kan väcka Jenkins efter några minuter:
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() }För att konfigurera det som ett initialiseringsskript för Jenkins sparar du det som $JENKINS_HOME/init.groovy eller placerar det som en *.groovy-fil i katalogen $JENKINS_HOME/init.groovy.d/.
När Jenkins startas om startar den nu i tyst läge. Det ser du på den stora röda notisen högst upp på sidan: ”Jenkins is about to shut down”. Ingen fara, det gör den inte. Meddelandet försvinner när tyst läge stängs av igen.
- CI/CD
Subscribe to our newsletter
Related blogs