Migrer SonarQube de Tomcat vers un service Windows

Comme je vous en ai déjà parlé, SonarQubeServiceSonarQube ne sera prochainement plus disponible pour Tomcat mais uniquement en tant que service Windows. Ce qui veut dire que je vais devoir migrer ma plate-forme SonarQube / Jenkins.

Ce qui amène certaines questions: vais-je perdre ma configuration ? Vais-je perdre mes analyses ? SonarQube utilise une base de données pour stocker les résultats d’analyse, donc nous pouvons espérer conserver celles-ci et leur historique.

Mais qu’en est-il de ma configuration SonarQube ? Vais-je devoir réinstaller les plugins ? Bon sang, oú ai-je mis les clés des licences pour ces plugins ? Et mes Quality Profiles ? Sont-ils stockés dans la base de données ou dans un fichier ? 

Dans quel ordre dois-je procéder: d’abord migrer Jenkins puis vérifier s’il est toujours capable de reconnaître SonarQube et de poursuivre les projets existants ? En fait, j’ai commencé ainsi mais pour ce blog, je vais commencer par migrer SonarQube, car c’est de loin plus simple que pour Jenkins.

Nous aurons l’occasion de poursuivre ensuite avec ce dernier, afin de nous débarrasser définitivement de Tomcat.

Migrer SonarQube vers un service Windows

Objectifs

Notez que je vais  migrer ma version actuelle de SonarQube, une 3.5.1. Il existe une version 3.7 plus récente… à l’heure où j’écris ces lignes car cela change très rapidement. L’équipe de SonarSource est réellement très productive. Cette dernière version présente beaucoup de fonctionnalités nouvelles, mais ce sera l’objet de futurs posts.

Ce sera également l’occasion de vérifier comment effectuer un upgrade de version de SonarQube en tant que service. Si ce sujet vous intéresse, nous avons vu comment effectuer un tel upgrade il y a déjà plus d’un an, dans ce post : Upgrade Sonar.

Je vais également me limiter à une migration de SonarQube, en fait une installation en tant que service Windows, et vérifier que je peux continuer à travailler avec mon référentiel existant: mon tableau de bord, mes analyses, mes configurations, etc. Nous verrons dans le prochain post les modifications à effectuer dans mon actuel Jenkins (sous Tomcat) afin de travailler avec ma nouvelle installation SonarQube en service Windows.

Documentation

Comme tout bon informaticien, je ne lis jamais les docs, et surtout pas celles d’installation. Je trouve assez peu naturel qu’un logiciel ne sache pas s’installer tout seul et nécessite de parcourir au préalable un manuel. Cependant, comme je n’encourage pas à faire de même, voici le lien vers le site SonarSource: http://docs.codehaus.org/display/SONAR/Running+SonarQube+as+a+Service+on+Windows.

Bon, cela a l’air super-simple :

Sonar_InstallWinService

Installation

Je vais d’abord commencer par arrêter Tomcat, afin d’être sûr de ne pas travailler avec mon instance SonarQube existante (sous Tomcat).

Stop_Tomcat

Ensuite, j’ouvre une fenêtre DOS afin de me positionner dans le répertoire de mon installation SonarQube.

Sonar_Bin

Ma version actuelle de SonarQube est donc une 3.5.1. Dans le répertoire \sonar-3.5.1\bin, je trouve deux sous-répertoires ‘windows-x86-32’ et ‘windows-x86-64’, ce dernier pour une installation Windows 64 bits.

Sonar_InstallWinService2Je ne rentre pas dans les détails de ce que fait ce programme .bat. Nous allons simplement suivre la recommandation de la doc et lancer ce programme en tant qu’Administrateur.

C’est très rapide. Sous la fenêtre des services Windows, je note l’apparition du service Sonar.

Sonar_Service

Je peux lancer ce service, soit par un ‘Start’ de celui-ci depuis cette même fenêtre des services Windows, soit en exécutant le fichier correspondant dans le répertoire ‘bin’ de SonarQube, depuis la fenêtre DOS.

sonar_Runservice1

Dans ce dernier cas, j’obtiens le message d’erreur suivant :

Sonar_ServiceLaunchError

Pareil au niveau des services, si j’essaye de faire un Start de SonarQube:

Sonar_ServiceLaunchError2

Sonar_ServiceProp1

En fait, si on ouvre le service Properties (click droit sur le service pour faire apparaître le menu correspondant)…

 

 

 

 

…afin d’aller dans l’onglet ‘Log On’.

Sonar_ServiceProp2

Cocher ‘This account’ et activer le bouton ‘Browse’ :

Sonar_ServiceProp3

Dans la fenêtre suivante, activer le bouton ‘Advanced’.

Sonar_ServiceProp4a

Puis ‘Find Now’ afin d’afficher la liste des users avec lesquels se connecter (Log On) afin de lancer ce service.

Sonar_ServiceProp4

Je vais sélectionner le user Windows que j’utilise au démarrage de Windows :

Sonar_ServiceProp5

Je valide avec le bouton ‘OK’. Remarquez que mon nom de user Windows est préfixé par l’identifiant de ma machine (JPFPC).

Sonar_ServiceProp6

‘OK’ à nouveau afin de revenir dans l’onglet ‘Log On’, dans lequel je vais saisir le password correspondant à mon user. Bouton ‘Apply’ puis ‘OK’ afin de fermer la fenêtre Properties.

Nous pouvons maintenant relancer le service et … cá marche ! Le message d’erreur a disparu et le service est à l’état ‘Started’.

Vérification

SonarQubeURL

Votre portail SonarQube – en tant que service Windows – est disponible à l’adresse Localhost:9000. Rentrez cette url dans votre browser préféré, et vous verrez apparaître le tableau de bord SonarQube tel que vous l’avez laissé.

Vérifiez : vos analyses précédentes s’affichent correctement, vos Quality Profiles personnalisés sont bien présents, vos plugins sont là également, et actifs (pas besoin de re-rentrer les licences). L’ensemble de votre configuration de SonarQube sous Tomcat et de vos projets, bref votre repository SonarQube, au grand complet est disponible et prêt à l’emploi.

Il ne nous reste plus qu’à effectuer une analyse depuis notre Jenkins actuel, sous Tomcat donc.

Ce que nous verrons dans le prochain post. Dans l’attente, passez une bonne semaine.

Ce article est également disponible en Leer este articulo en castellano et Read that post in english.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *