Ich muss einige Konfigurationsänderungen an unserer Jenkins-Instanz vornehmen, bei denen Jenkins einige Male neu gestartet wird. Unsere Entwickler legen jedoch häufig genug fest, dass ich Jenkins nicht gesehen habe, ohne dass in drei Tagen Jobs ausgeführt wurden.
Gibt es eine native Möglichkeit (entweder über die GUI oder über die Befehlszeile), Jenkins sicher neu zu starten? IE: Warten Sie, bis die aktuellen Jobs beendet sind, bevor Sie herunterfahren, und verfolgen Sie die Jobs in der Warteschlange, um zu beginnen, sobald Jenkins wieder hochgefahren wird.
Ich weiß, dass es ein Plugin gibt, aber um es zu installieren, muss ich Jenkins neu starten ...
Antworten:
Wenn Sie zu navigieren,
$YOUR_JENKINS_URL/updateCenter/
sollten Sie die folgende Seite sehen:Hier können Sie überprüfen,
Restart Jenkins when installation is complete and no jobs are running
welche ziemlich sicher sein sollte.quelle
/safeRestart
und/restart
Endpunkte geben.IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
Dies ist genau das, was passiert, wenn Sie dieses Kontrollkästchen aktivieren .Jenkins without jobs running in three days
- was bedeutet, dass es Auswirkungen geben wird, da sich einige Jobs verzögern werden. Aber immer noch besser als Arbeitsplätze zu verlieren.Zu Besuch in https: // youjenkinsdomain / safeRestart wird es im Modus gesetzt , wenn es um Arbeitsplätze und neu gestartet werden dann zu stoppen wartet.
quelle
Sie können den Befehl safeRestart entweder mit der Jenkins Rest-API ( [jenkins_url] / safeRestart ) oder über die Jenkins-CLI ausführen .
ANMERKUNG: Wenn Sie den Befehl safeRestart ausführen, werden alle Jobs, die während des Neustarts ausgeführt werden sollen, in die Warteschlange gestellt und ausgeführt, wenn der Server wieder online ist. Stellen Sie sicher, dass dies beim Neustart keine Konflikte verursacht!
quelle
Ich denke, das ist ein echtes Problem, das viele zu lösen versuchen. Es gibt Situationen, in denen es vorzuziehen ist, Jenkins nach der Installation des Plugins neu zu starten. Einer der Vorschläge, die ich aufgrund meiner Erfahrungen machen kann, ist:
Ich verstehe, dass dies eine manuelle Anstrengung und Koordination erfordert. Aber das hat bisher in unserem Projekt so gut geklappt, dachte kein Schaden bei Erwähnung.
quelle
Um Jenkins manuell neu zu starten, können Sie einen der folgenden Befehle verwenden (indem Sie die URL in einem Browser eingeben):
(jenkins_url)/safeRestart
- Ermöglicht das Abschließen aller ausgeführten Jobs. Neue Jobs bleiben in der Warteschlange, um ausgeführt zu werden, nachdem der Neustart abgeschlossen ist.(jenkins_url)/restart
- Erzwingt einen Neustart, ohne auf den Abschluss der Builds zu warten.quelle
Das Aufrufen von " https: // jenkins / safeRestart " wartet nicht darauf, dass "jobs / builds" bei Pipeline-Jobs vollständig abgeschlossen sind.
Es scheint zu warten, bis die Schritte abgeschlossen sind und Jenkins neu gestartet und die Pipline wieder aufgenommen wurde, nachdem Jenkins wieder angezeigt wurde.
quelle
Jenkins ist so konzipiert, dass es von Neustarts nicht betroffen ist. Aus meiner Erfahrung ist es möglich, dass ein Build aufgrund eines Neustarts fehlschlägt, dies ist jedoch selten.
Wo ich arbeite, mussten wir Jenkins regelmäßig neu starten. Wir haben jede Art von Arbeit, die Sie sich vorstellen können, einige kleine, einige große. Nur einmal haben wir gesehen, dass ein Build fehlgeschlagen ist, bei dem eine Gurke nicht rehydriert wurde.
Danach führen wir jetzt immer sichere Neustarts durch.
quelle