2014-01-17 4 views
9

Ich möchte in der Lage sein, einen geplanten Job einzurichten, der Jenkins jede Nacht neu startet (Windows7). Gibt es eine Möglichkeit, einen Job einzurichten, der einen safeRestart programmatisch ausführt, den ich in meinen Windows-Scheduler legen kann?Müssen Jenkins-Dienst programmatisch nach einem Zeitplan neu starten

+0

Es wäre noch nützlicher sein, wenn wir einen Job definieren könnte, die während eines fest einprogrammiert täglichen Wartungsfenster Pläne neu gestartet. – sorin

Antwort

1

Sie können den Safe-Restart-Befehl in Jenkins CLI verwenden.

+0

Kann ich das API-Token verwenden oder muss ich SSH einrichten? Ich würde das erstere bevorzugen. –

+0

Die SSH-Authentifizierung funktioniert nicht. Authentifizierung fehlgeschlagen Kein privater Schlüssel akzeptiert. Ugg. –

+1

gareth_bowles ... Ich habe es funktioniert. Danke für deine Hilfe. –

5

Hier für andere, die von Google hierher kommen. Sie können Jenkins einen Job hinzufügen, um sich mithilfe der CLI neu zu starten. Fügen Sie einen Job mit einem Shell-Schritt auszuführen:

java -jar "$JENKINS_HOME/war/WEB-INF/jenkins-cli.jar" -s "$JENKINS_URL" safe-restart 
16

Wenn die oben CLI-Methode nicht funktioniert hat (in meinem Fall scheitert es an: hudson.security.AccessDeniedException2: anonym fehlt die Gesamt/Leseberechtigung)

import hudson.model.*; 
Hudson.instance.doSafeRestart(null); 

oder die neue Jenkins Instanz

import jenkins.model.* 
Jenkins.instance.doSafeRestart(null); 
:

Sie können einen Groovy plugin Build-Schritt und "ein System Groovy Skript ausführen" erstellen

Dann können Sie festlegen, dass dieser Job vom Zeitplan ausgelöst wird. Zum Beispiel Jenkins neu starten täglich auf Mitternacht, setzen Sie „regelmäßig Build“: H 00 * * *

+3

IMHO muss dies die Antwort sein - Dies ist vollständig in Jenkins Master integriert. Nicht abhängig von einem Slave oder externen Prozess. – Jayan

+0

IMHO nicht in der Lage, Klasse zu lösen jenkins.model.Jenkins – sloven

+0

Liebe diese Lösung, wusste nicht, dass es möglich war. – uncletall

1

Für Jenkins mit LDAP aktiviert ist, nicht direkter Aufruf von safe-restart Befehl arbeiten. This JENKINS JIRA helped

Anmeldung zuerst

java -jar jenkins-cli.jar -s http://localhost:8080 login --username "$JCLIUSER" --password "$JCLIPASSWD" 

Sicher Neustart danach

java -jar jenkins-cli.jar -s http://localhost:8080 safe-restart --username "$JCLIUSER" --password "$JCLIPASSWD" 
Verwandte Themen