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.


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


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.


112

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

Diese Seite zeigt, wie URL-Befehle verwendet werden.


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.


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.

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


/ 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


... 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

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.