Pages

jeudi 13 mars 2014

Comment automatiser ou scripter des redémarrages à distance de services Windows

Je vais faire partager aujourd'hui une petite astuce pour vous aider à gérer aux mieux vos services Tomcat distant sur vos serveurs sous Windows. Dans mon cas personnel je devais chaque lundi redémarrer une batterie d'instance Tomcat sur des serveurs distants.

Je suis parti d'un utilitaire de services windows nommé psservice que j'ai couplé à Jenkins. Vous pouvez installer directement l'exécutable sur le serveur Jenkins mais personnellement j'ai préféré garder une trace dans un repository Svn ou Git. Je peux ainsi facilement faire évoluer la version de l'exe et pourquoi pas enrichir le fonctionnel sans avoir à me connecter physiquement sur le serveur Jenkins.

Mon projet nommé Redemarrage est assez simple


Le job Jenkins comprend plusieurs paramètres de types String


  • server
  • servicename
  • adminuser : nom du compte utilisateur ayant les droits permettant de redémarrer les services
  • adminpassword : mot de passe associé

 Au niveau du job Jenkins je fais le lien avec mon projet placé sous Subversion

On indique que le job peut être invoqué à distance

Il ne vous reste plus qu'à préciser les commandes qui seront lancées par le job et le tour est joué
echo "Stopping the tomcat service %servicename% on %server%"
%WORKSPACE%/scripts/windows/psService.exe \\%server% -accepteula -u %adminuser% -p %adminpassword% stop %servicename%
sleep 15

echo "Starting the tomcat service %servicename% on %server%"
%WORKSPACE%/scripts/windows/psService.exe \\%server% -accepteula -u %adminuser% -p %adminpassword% start %servicename% 
sleep 15

Ce job peut être joué soit via Jenkins soit invoqué à distance puisque nous l'avons paramétrer pour. Pour cela vous pouvez par exemple utiliser wget. Un exemple de commande sera

wget 
--post-data 
"token=RedemarrageService&Serveur=MONNOMDESERVEUR&ServiceName=MONSERVICETOMCAT
&windowsAdminUser=JAVAMIND&windowsAdminPassword=JAVAMIND" 
http://webpic.javamind.com/jenkins/job/Redemarrage/buildWithParameters 

1 commentaire:

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.