Muszę wprowadzić pewne zmiany konfiguracji w naszym wystąpieniu Jenkins, które będą wymagały ponownego uruchomienia Jenkins kilka razy. Jednak nasi programiści zobowiązują się na tyle często, że nie widziałem Jenkinsa bez zadań uruchomionych od trzech dni.
Czy istnieje natywny sposób (za pośrednictwem GUI lub wiersza poleceń) bezpiecznego restartowania Jenkinsa? IE: poczekaj na zakończenie bieżących zadań, zanim przejdziesz na dół, i śledź kolejki zadań, które rozpoczną się po powrocie Jenkinsa.
Wiem, że jest wtyczka, ale aby ją zainstalować, muszę ponownie uruchomić Jenkins ...
Odpowiedzi:
Jeśli nawigujesz
$YOUR_JENKINS_URL/updateCenter/
, powinieneś zobaczyć następującą stronę:Tutaj możesz sprawdzić,
Restart Jenkins when installation is complete and no jobs are running
które powinny być dość bezpieczne.źródło
/safeRestart
i/restart
.IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
dokładnie tak dzieje się, gdy zaznaczysz to pole.Jenkins without jobs running in three days
- co oznacza, że będzie to miało wpływ, ponieważ niektóre prace zostaną opóźnione. Ale wciąż lepsze niż utrata pracy.Odwiedzając stronę https: // youjenkinsdomain / safeRestart ustawisz ją w trybie, gdy będzie czekał na zatrzymanie zadań, a następnie uruchomi się ponownie.
źródło
Możesz wykonać komendę safeRestart za pomocą interfejsu API Jenkins Rest API ( [jenkins_url] / safeRestart ) lub komendę za pomocą interfejsu Jenkins CLI .
UWAGA: Po uruchomieniu polecenia safeRestart wszelkie zadania ustawione do wykonania podczas restartu zostaną umieszczone w kolejce i wykonane, gdy serwer będzie z powrotem w trybie online. Upewnij się, że nie spowoduje to żadnych konfliktów po ponownym uruchomieniu!
źródło
Myślę, że to prawdziwy problem, który wielu próbuje rozwiązać. Czasami lepiej jest zrestartować Jenkins po instalacji wtyczki. Jedną z sugestii, które mogę przedstawić na podstawie mojego doświadczenia, jest:
Rozumiem, że wymaga to ręcznego wysiłku i koordynacji. Ale do tej pory działało to tak dobrze w naszym projekcie, nie wspominając o niczym złym.
źródło
Aby ręcznie zrestartować Jenkins, możesz użyć jednego z następujących poleceń (wpisując ich adres URL w przeglądarce):
(jenkins_url)/safeRestart
- Pozwala na zakończenie wszystkich uruchomionych zadań. Nowe zadania pozostaną w kolejce do uruchomienia po zakończeniu ponownego uruchomienia.(jenkins_url)/restart
- Wymusza restart bez oczekiwania na zakończenie kompilacji.źródło
Odwiedzanie „ https: // jenkins / safeRestart ” nie czeka na całkowite zakończenie „zadań / kompilacji” w przypadku zadań potokowych.
Wygląda na to, że czeka na wykonanie kroków i zrestartuje jenkins i wznowi pipeline po ponownym pojawieniu się jenkins.
źródło
Ponowne uruchomienie ma wpływ na Jenkins. Z mojego doświadczenia wynika, że kompilacja może się nie powieść z powodu ponownego uruchomienia, ale są one rzadkie.
Tam, gdzie pracuję, musieliśmy regularnie restartować Jenkinsa. Mamy każdy rodzaj pracy, jaką możesz sobie wyobrazić, niektóre małe, niektóre ogromne. Tylko raz widzieliśmy niepowodzenie kompilacji, w której marynata nie była nawadniana.
Następnie zawsze przeprowadzamy teraz bezpieczne ponowne uruchomienie.
źródło