J'ai besoin de faire quelques changements de configuration sur notre instance Jenkins qui impliqueront de redémarrer Jenkins plusieurs fois. Cependant, nos développeurs s'engagent suffisamment fréquemment pour que je n'aie pas vu Jenkins sans travaux en cours depuis trois jours.
Existe-t-il un moyen natif (via l'interface graphique ou via la ligne de commande) de redémarrer en toute sécurité Jenkins? IE: attendez que les travaux en cours se terminent avant de s'arrêter, et gardez une trace des travaux en file d'attente pour démarrer une fois que Jenkins revient.
Je sais qu'il y a un plugin mais pour l'installer j'ai besoin de redémarrer Jenkins ...
Réponses:
Si vous accédez à,
$YOUR_JENKINS_URL/updateCenter/
vous devriez voir la page suivante:Ici, vous pouvez vérifier
Restart Jenkins when installation is complete and no jobs are running
ce qui devrait être assez sûr.la source
/safeRestart
et des/restart
points de terminaison.IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.
c'est exactement ce qui se passe lorsque vous cochez cette case.Jenkins without jobs running in three days
- ce qui signifie qu'il y aura un impact car certains emplois seront retardés. Mais encore mieux que de perdre des emplois.Visiter https: // youjenkinsdomain / safeRestart le mettra en mode quand il attend que les travaux s'arrêtent puis redémarre.
la source
Vous pouvez exécuter la commande safeRestart à l'aide de l'API Jenkins Rest ( [jenkins_url] / safeRestart ) ou vous pouvez exécuter la commande via la CLI Jenkins .
REMARQUE: lors de l'exécution de la commande safeRestart, tous les travaux définis pour être exécutés lors du redémarrage seront mis en file d'attente et exécutés lorsque le serveur sera de nouveau en ligne. Assurez-vous que cela ne provoque aucun conflit lors du redémarrage!
la source
Je pense que c'est un vrai problème que beaucoup essaient de résoudre. Il y a des moments où il est préférable de redémarrer Jenkins lors de l'installation du plugin. L'une des suggestions que je peux faire sur la base de mon expérience est de:
Je comprends que cela nécessite un effort manuel et une coordination. Mais cela a si bien fonctionné jusqu'à présent dans notre projet, ne pense pas avoir de mal à le mentionner.
la source
Pour redémarrer Jenkins manuellement, vous pouvez utiliser l'une des commandes suivantes (en entrant leur URL dans un navigateur):
(jenkins_url)/safeRestart
- Permet à tous les travaux en cours d'exécution de se terminer. Les nouveaux travaux resteront dans la file d'attente pour s'exécuter une fois le redémarrage terminé.(jenkins_url)/restart
- Force un redémarrage sans attendre la fin des builds.la source
La visite de " https: // jenkins / safeRestart " n'attend pas que "jobs / builds" soit complètement terminé en cas de travaux de pipeline.
Il semble attendre la fin des étapes et effectuer un redémarrage jenkins et reprendre la ligne de force après que jenkins soit revenu.
la source
Jenkins est conçu pour ne pas être affecté par les redémarrages. D'après mon expérience, il est possible qu'une build échoue en raison d'un redémarrage, mais ils sont rares.
Là où je travaille, nous devions redémarrer Jenkins régulièrement. Nous avons tous les types de travail que vous pouvez imaginer, certains petits, certains énormes. Une seule fois, nous avons vu une construction échouer où un cornichon n'était pas en cours de réhydratation.
Après cela, nous faisons toujours des redémarrages en toute sécurité maintenant.
la source