Blog

Jenkinsin hiljainen käynnistys

DEC 12, 2017

Jenkinsin estäminen suorittamasta töitä uudelleenkäynnistyksen jälkeen

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.

Jenkinsin ei aina haluta alkavan suorittaa jobeja heti käynnistymisen jälkeen. Valitettavasti käynnistys lepotilassa ei ole sisäänrakennettu ominaisuus, ellet käytä CloudBees Jenkins Enterprisea. Onneksi fiksulla skriptillä voi ratkaista lähes kaiken.

Tässä lyhyessä kirjoituksessa kerrotaan, miten Jenkins käynnistetään hiljaisessa tilassa, jolloin se ei suorita buildeja. Päivityssarjan jälkeen halusimme varmistaa, että Jenkins oli määritetty oikein. Emme kuitenkaan halunneet buildien alkavan, kun olimme vielä työn touhussa.

Ratkaisuksi kokosin yksinkertaisen Groovy-skriptin, joka asettaa Jenkinsin hiljaiseen tilaan. Kun se määritetään alustusskriptiksi, Jenkins käynnistyy lepotilassa. Laajensin skriptiä myöhemmin niin, että se voi myös herättää Jenkinsin muutaman minuutin kuluttua:

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() }

Määritä se Jenkinsin alustusskriptiksi tallentamalla se tiedostoon $JENKINS_HOME/init.groovy tai sijoittamalla se *.groovy-tiedostona hakemistoon $JENKINS_HOME/init.groovy.d/.

Kun Jenkins käynnistetään uudelleen, se käynnistyy hiljaisessa tilassa. Sen näkee sivun yläreunassa olevasta suuresta punaisesta ilmoituksesta: ”Jenkins is about to shut down”. Ei huolta, näin ei ole tapahtumassa. Viesti katoaa, kun hiljainen tila poistetaan jälleen käytöstä.

  • CI/CD

Subscribe to our newsletter