Preciso fazer algumas alterações de configuração em nossa instância do Jenkins que envolvam a reinicialização do Jenkins algumas vezes. No entanto, nossos desenvolvedores estão comprometendo com frequência suficiente para que eu não tenha visto Jenkins sem trabalhos sendo executados em três dias.
Existe uma maneira nativa (através da GUI ou via linha de comando) para reiniciar com segurança o Jenkins? IE: aguarde o término dos trabalhos atuais antes de ir para baixo e acompanhe os trabalhos em fila para iniciar assim que o Jenkins voltar.
Eu sei que há um plugin, mas para instalá-lo, preciso reiniciar o Jenkins ...
Respostas:
Se você navegar,
$YOUR_JENKINS_URL/updateCenter/
deverá ver a seguinte página:Aqui você pode verificar
Restart Jenkins when installation is complete and no jobs are running
qual deve ser bastante seguro.fonte
/safeRestart
e/restart
endpoints.IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
é exatamente isso que acontece quando você marca essa caixa.Jenkins without jobs running in three days
- o que significa que haverá um impacto, pois alguns trabalhos serão adiados. Mas ainda assim, melhor do que perder empregos.Visitar https: // youjenkinsdomain / safeRestart o definirá no modo quando aguardar que os trabalhos parem e, em seguida, reinicie.
fonte
Você pode executar o comando safeRestart usando a API do Jenkins Rest ( [jenkins_url] / safeRestart ) ou pode executar o comando via Jenkins CLI .
NOTA: Ao executar o comando safeRestart, todos os trabalhos configurados para serem executados durante a reinicialização serão enfileirados e executados quando o servidor estiver online novamente. Verifique se isso não causa nenhum conflito ao reiniciar!
fonte
Eu acho que este é um problema real que muitos estão tentando resolver. Às vezes, é preferível reiniciar o Jenkins após a instalação do plugin. Uma das sugestões que posso fornecer com base na minha experiência é:
Entendo que isso requer um esforço manual e coordenação. Mas isso funcionou até agora tão bem em nosso projeto, que não causou mal em mencionar.
fonte
Para reiniciar o Jenkins manualmente, você pode usar um dos seguintes comandos (inserindo o URL em um navegador):
(jenkins_url)/safeRestart
- Permite que todos os trabalhos em execução sejam concluídos. Novos trabalhos permanecerão na fila para execução após a reinicialização ser concluída.(jenkins_url)/restart
- Força uma reinicialização sem aguardar a conclusão das compilações.fonte
A visita " https: // jenkins / safeRestart " não espera pela conclusão de "jobs / builds" completamente no caso de trabalhos de pipeline.
Parece aguardar as etapas serem concluídas e executar a reinicialização do jenkins e retomar o pipline depois que o jenkins aparecer novamente.
fonte
Jenkins foi projetado para não ser afetado por reinicializações. Pela minha experiência, é possível que uma compilação falhe devido a uma reinicialização, mas elas são raras.
Onde trabalho, costumávamos reiniciar o Jenkins regularmente. Temos todo tipo de trabalho que você pode imaginar, alguns pequenos, outros enormes. Somente uma vez vimos uma construção falhar onde um picles não estava sendo reidratado.
Depois disso, sempre fazemos reinicializações seguras agora.
fonte