Redémarrez Jenkins esclave de maître
- Je utiliser jenkins configuration maître-esclave pour la capture des mesures de Performance d'un produit. Nous avons observé que jenkins-esclave a tendance à s'accumuler de la mémoire et donc influe sur la Performance des métriques d'être capturé.
Pour assurer la cohérence de la métrique d'être capturé, nous pensons à redémarrer jenkins esclave tous les jours à partir de le maître, quand il n'existe pas de travaux en cours d'exécution sur l'esclave. Est-ce faisable?
Comment pouvons-nous accomplir?
Remarque: l'Utilisation de jenkins-esclave comme un service n'est pas une option parce que nous sommes d'avoir la sécurité de l'autre les problèmes d'accès avec elle.
OriginalL'auteur Praneeth | 2015-03-20
Vous devez vous connecter pour publier un commentaire.
Je sais que cette réponse arrive un peu en retard :
Voilà comment j'ai fait la même chose pour les mêmes raisons, vous ne savez pas si c'est la meilleure façon d'atteindre cet objectif, mais il a résolu la plupart de nos problèmes :
Pour Les Machines Windows :
Il va redémarrer les machines.
n'utilisez pas de "jenkins-esclave comme un service". Au lieu de cela, j'ai configuré la
les nœuds de se connecter via le JNLP client, et ensuite ajouté l'slave.jar
commande pour chaque nœud dans la Fenêtre du planificateur de tâches (à exécuter sur
de démarrage)
lui-même en ligne sur Jenkins lui-même juste après le redémarrage.
Pour Les Machines Mac :
Le processus est relativement plus facile sur mac. Tout d'abord, faire un travail à exécuter
"shutdown-r now" sur Mac nœud
Le nœud devrait tout simplement être configuré pour se connecter via ssh. Qui
prendre soin de le mettre en ligne sur Jenkins.
C'était la "exécuter shell" une partie de mon script pour redémarrer toutes les machines utilisées pour nos automatismes :
PS:
Ce n'est pas exactement liée à la question, mais peut être utile pour la situation que vous avez spécifié. Il peut être une bonne idée d'ajouter un script batch pour nettoyer les fichiers temporaires sur le démarrage des machines Windows.
Ajoutez ce qui suit à un script batch (par exemple, cleanTemp.chauve-souris) dans le dossier de démarrage de votre machine Windows.
(Pour Windows 10, C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)
OriginalL'auteur Tushar Dwivedi
Si vous avez encore besoin d'une réponse:
https://wiki.apache.org/general/Jenkins#How_do_I_restart_a_Jenkins_Unix_Slave.3F
Bien, j'ai juste fait une débrancher et puis j'ai vu que le processus est décédé dans la traite des esclaves. Je n'ai pas les tuer manuellement.
Puis lancer l'esclave de nouveau et c'est tout.
C'est bien à partir d'une INTERFACE web. Je n'ai pas cherché pour les CLI encore.
OriginalL'auteur Doron Veeder
Créer un emploi par exemple "Reboot-Esclave", et ensemble avec shell "shutdown-r -t 0", et prendre la cible nom d'esclave en tant que paramètre. (de cette façon, le redémarrage de la commande sera exécutée directement sur la cible des esclaves que vous souhaitez redémarrer.)
Créer un autre poste par exemple "Reboot-Check-Esclave-en Ligne", dans cet emploi, vous devez appeler le 1er emploi et de passer à la cible nom d'esclave comme paramètre, en plus, vous feriez mieux d'écrire un peu de logique pour déterminer si votre esclave fini de le redémarrer et connecté pour Jenkins server, vous pouvez la mettre en œuvre par l'ajout d'une "Exécution du système de script groovy" étape dans votre travail et d'écriture de code ci-dessous:
OriginalL'auteur ppokyou