Necesito hacer algunos cambios de configuración en nuestra instancia de Jenkins que implicarán reiniciar Jenkins un par de veces. Sin embargo, nuestros desarrolladores se comprometen con tanta frecuencia que no he visto a Jenkins sin trabajos ejecutándose en tres días.
¿Existe una forma nativa (ya sea a través de la GUI o la línea de comando) para reiniciar de forma segura Jenkins? IE: espere a que finalicen los trabajos actuales antes de bajar, y realice un seguimiento de los trabajos en cola para comenzar una vez que Jenkins vuelva a subir.
Sé que hay un complemento, pero para instalarlo necesito reiniciar Jenkins ...
Respuestas:
Si navegas hacia
$YOUR_JENKINS_URL/updateCenter/
, deberías ver la siguiente página:Aquí puede verificar
Restart Jenkins when installation is complete and no jobs are running
cuál debería ser bastante seguro.fuente
/safeRestart
y/restart
puntos finales.IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
esto es exactamente lo que sucede cuando marcas esa casilla.Jenkins without jobs running in three days
, lo que significa que habrá un impacto ya que algunos trabajos se retrasarán. Pero aún así, mejor que perder empleos.Visitar https: // youjenkinsdomain / safeRestart lo configurará en el modo cuando espera a que se detengan los trabajos y luego se reinicia.
fuente
Puede ejecutar el comando safeRestart utilizando la API Jenkins Rest ( [jenkins_url] / safeRestart ) o puede ejecutar el comando a través de la CLI de Jenkins .
NOTA: Al ejecutar el comando safeRestart, cualquier trabajo configurado para ejecutarse durante el reinicio se pondrá en cola y se ejecutará cuando el servidor vuelva a estar en línea. ¡Asegúrese de que esto no cause ningún conflicto al reiniciar!
fuente
Creo que este es un problema real que muchos están tratando de resolver. Hay momentos en los que es preferible reiniciar Jenkins después de la instalación del complemento. Una de las sugerencias que puedo proporcionar en base a mi experiencia es:
Entiendo que esto requiere un esfuerzo manual y coordinación. Pero esto ha funcionado hasta ahora tan bien en nuestro proyecto, no pensamos en mencionarlo.
fuente
Para reiniciar Jenkins manualmente, puede usar cualquiera de los siguientes comandos (ingresando su URL en un navegador):
(jenkins_url)/safeRestart
- Permite completar todos los trabajos en ejecución. Los nuevos trabajos permanecerán en la cola para ejecutarse después de que se complete el reinicio.(jenkins_url)/restart
- Fuerza un reinicio sin esperar a que se completen las compilaciones.fuente
Visitar " https: // jenkins / safeRestart " no espera a que los "trabajos / compilaciones" se terminen por completo en caso de trabajos de canalización.
Parece esperar los pasos para finalizar y realizar el reinicio de jenkins y reanudar la línea de canalización después de que jenkins haya surgido nuevamente.
fuente
Jenkins está diseñado para no verse afectado por los reinicios. Desde mi experiencia, es posible que una compilación falle debido a un reinicio, pero son raros.
Donde trabajo solíamos tener que reiniciar Jenkins regularmente. Tenemos todo tipo de trabajo que puedas imaginar, algunos pequeños, otros enormes. Solo una vez vimos que fallaba una construcción donde no se rehidrataba un pepinillo.
Después de eso, siempre hacemos reinicios seguros ahora.
fuente