Wie schalte ich meine Jenkins sicher aus?

75

Ich lasse Jenkins in einem eigenen Container laufen. Ich benutze den Befehl "nohup java -jar jenkins.war --httpsPort = 8443".

Wie schalte ich es sicher aus? Im Moment benutze ich den Befehl kill, um den Prozess abzubrechen.

user1164061
quelle
Bitte definieren Sie, was Sie unter "sicher" verstehen. Meinst du, dass Jenkins nicht herunterfahren würde, wenn es sich mitten in einem Build befindet? Oder nur, dass Jenkins sauber herunterfährt, ohne Konfigurationsdateien zu beschädigen?
sti
beide dh nicht herunterfahren, wenn es in der Mitte eines
Builds ist
Ähnliche Frage
Lindon Fox
4
In allen Antworten auf dieser Seite fehlt http://yourjenkins/quietDown. Dadurch wird sichergestellt, dass neue Builds nicht ausgeführt werden, vorhandene Builds jedoch weiterhin ausgeführt werden. Wenn Sie Ihre Jenkins aufrufen, möchten Sie möglicherweise die Warteschlange leeren
Mike D

Antworten:

17

Ja, töten sollte in Ordnung sein, wenn Sie Jenkins mit dem integrierten Winstone-Container ausführen. Diese Jenkins-Wiki-Seite enthält einige Tipps zum Einrichten von Steuerungsskripten für Jenkins.

gareth_bowles
quelle
112

Verwenden http://[jenkins-server]/exit

Diese Seite zeigt, wie URL-Befehle verwendet werden.

tcbcw
quelle
URL-Optionen http: // [jenkins-server] / [befehl] wobei [befehl] beendet werden kann herunterfahren jenkins neu starten neu starten
jenkins
55

Wenn Sie Jenkins und alle seine Dienste auf dem Server mithilfe der Linux-Konsole (z. B. Ubuntu) stoppen möchten, führen Sie Folgendes aus:

service jenkins start/stop/restart

Dies ist nützlich, wenn Sie einen Image- / Volume-Snapshot erstellen müssen und alle Dienste nicht mehr auf die Festplatte / das Volume schreiben sollen.

mcane
quelle
4
Diese Antwort setzt voraus, dass Jenkins mit dem Debian- oder RPM-Paket installiert wurde, was nicht immer der Fall ist.
gareth_bowles
26
  1. jenkinsUrl / safeRestart - Sie können warten, bis JOBS ausgeführt wird, um den Vorgang abzuschließen und einen Neustart durchzuführen.
  2. jenkinsUrl / restart - Führen Sie sofort einen Neustart durch, ohne auf die aktuell ausgeführten Jobs zu warten.
  3. jenkinsUrl / exit - Stoppt / fährt die JENKINS-Dienste herunter
  4. jenkinsUrl / reload - Zum erneuten Laden der Konfigurationsänderungen.
Muthaiah PL
quelle
2
Warum zum Teufel haben sie es sicher gemacht? Neustart und dann sicheres Herunterfahren anstelle von safeShutdown? Es sind solche Inkonsistenzen, die einen Entwickler an die Wand treiben (und uns zwingen, alles in StackOverflow nachzuschlagen). </ rant> FYI Safe-Shutdown funktioniert nicht mehr.
Colin
24

Die vollständige Liste der Befehle finden Sie unter http://your-jenkins/cli

Der Befehl für ein sauberes Herunterfahren lautet http://your-jenkins/safe-shutdown

Möglicherweise möchten Sie auch verwenden http://your-jenkins/safe-restart

Francisco
quelle
/ safe-restart funktioniert nicht mit meiner Jenkins-Installation. Kommt es mit einer bestimmten Version oder einem bestimmten Plugin?
Lordalcol
4
Anscheinend gibt es ab Jenkins Version 1.5 eine von / safeRestart unterstützte URL.
Lordalcol
7
Um sicher (zB auf Jobs warten) neu zu starten - http://your-jenkins/safeRestart. Um sicher zu verlassen -http://your-jenkins/safeExit
Kevinmm
8

Sie können Jenkins sicher töten. Es fängt SIGTERM und SIGINT ab und führt ein ordnungsgemäßes Herunterfahren durch. Wenn Jenkins jedoch gerade etwas erstellt hat, werden die Builds abgebrochen und in der Statusanzeige grau angezeigt.

Wenn Sie dies vermeiden möchten, müssen Sie Jenkins in den Shutdown-Modus versetzen, um zu verhindern, dass neue Builds gestartet werden, und warten, bis die aktuell ausgeführten Builds abgeschlossen sind, bevor Sie Jenkins beenden.

Sie können auch die Jenkins-Befehlszeilenschnittstelle verwenden und Jenkins anweisen, das System sicher herunterzufahren. Weitere Informationen zu Jenkins cli finden Sie unter http: // YOURJENKINS / cli

sti
quelle
... und es scheint, dass wenn es nicht auf SIGINT und SIGTERM reagiert, SIGKILL vielleicht gerechtfertigt ist (obwohl es wahrscheinlich nicht "sicher" ist).
Salbei
2

Erstellen Sie einen Jenkins-Job, der auf dem Master ausgeführt wird:

java -jar "%JENKINS_HOME%/war/WEB-INF/jenkins-cli.jar" -s "%JENKINS_URL%" safe-restart
Noam Manos
quelle
2

Sie können auch im Init-Skriptbereich (z. B. centos vi /etc/init.d/jenkins) nach Informationen darüber suchen, wie der Dienst tatsächlich gestartet und gestoppt wird.

Paul
quelle
1

Fährt den Jenkins-Server sofort herunter.

CMD.exeGehen Sie in Windows zu dem Ordner, in dem sich die jenkins-cli.jarDatei befindet.

C:\Program Files (x86)\Jenkins\war\WEB-INF

Verwenden Sie den Befehl zum sicheren Herunterfahren

java -jar jenkins-cli.jar -s http://localhost:8080 safe-shutdown --username "YourUsername" 
--password "YourPassword"

Die vollständige Liste der Befehle finden Sie unter http: // localhost: 8080 / cli

Credits an Francisco Post für cliBefehle.

Referenz:

1.

Hoffnung hilft jemandem.

Shaijut
quelle