So che questa risposta è in arrivo un po 'tardi:
Ecco come ho fatto lo stesso per le stesse ragioni, non so se questo è il modo migliore per raggiungere questo obiettivo, ma ha risolto molti dei nostri problemi :
per computer con Windows:
- Creare un lavoro che viene eseguito semplicemente "shutdown -r -f" su macchine Windows. Riavvia le macchine.
- Ora riportandolo in linea. Per motivi simili al tuo, I non ha utilizzato "jenkins-slave as a service". Invece ho configurato i nodi di connettersi tramite client JNLP, e poi aggiunto il comando slave.jar per ciascun nodo task scheduler di finestra (per l'esecuzione su all'avvio)
- Ora il lavoro riavvia la macchina e la macchina di Windows portare stesso online su Jenkins stesso subito dopo il riavvio.
per le macchine Mac:
il processo è relativamente più facile su Mac. Innanzitutto, esegui un lavoro per eseguire "shutdown -r now" sul nodo Mac
Il nodo deve semplicemente essere configurato per connettersi tramite ssh. Questo sarà occuparsi di portarlo online su Jenkins.
Questa è stata la parte "eseguire la shell" del mio script per riavviare tutte le macchine utilizzate per il nostro automazione:
distro=`uname`
if [ "$distro" = "Windows_NT" ] || [ "$distro" = "WindowsNT" ] ;then
echo "Restarting Windows Machine...."
shutdown -r -f
else
echo "Restarting Mac Machine...."
sudo shutdown -r now
fi
PS:
Non è esattamente legato alla domanda , ma potrebbe essere utile per la situazione che hai specificato. Potrebbe essere una buona idea aggiungere uno script batch per pulire i file temporanei all'avvio delle macchine Windows. Aggiunta di seguito a uno script batch (ad esempio, cleanTemp.bat) nella cartella di avvio del computer Windows. (Per Windows 10, C: \ Users \\ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programmi \ Esecuzione automatica)
rmdir %temp% /s /q
md %temp%
fonte
2016-02-27 10:35:56
Come siete riusciti a eseguire il comando shutdown su tutti gli slave contemporaneamente? O hai semplicemente eseguito il lavoro più volte fino a quando non sono stati colpiti tutti gli schiavi? Ho un setup simile (molti windows, mac e centos slaves), ma non riesco a capire come riavviarli tutti in una volta in modo automatico. – user3270760