Installer SonarQube – Jenkins

Install JenkinsDans cette série de posts sur l’installation et la configuration de SonarQube, nous avons vu précédemment comment réaliser une analyse de code avec le SonarQube Runner.

Aujourd’hui, nous allons voir comment installer et configurer Jenkins, afin d’utiliser celui-ci pour gérer toutes nos analyses.

Ce sera également l’occasion de détailler la résolution de quelques problèmes spécifiques à notre environnement, et accessoirement de voir comment détecter ces problèmes avec le serveur Tomcat, dont nous avons auparavant détaillé auparavant l’installation.

Installation de Jenkins

Download JenkinsTout comme pour SonarQube, nous avons choisi d’installer Jenkins sous la forme d’un fichier .war, que nous téléchargeons depuis la page d’accueil de Jenkins.

Je vais garder ce fichier ‘jenkins.war’ dans un dossier dédié à la gestion des différentes versions de SonarQube, ses plugins, et Jenkins, avant de le recopier sous Tomcat, dans le répertoire ‘C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps’.

Tomcat va alors déployer ce fichier .war dans une webapp, à laquelle nous pouvons ensuite accéder depuis notre navigateur, avec l’url suivante http://localhost:8888/jenkins/. Rappel: ‘8888’ est le port désigné lors de l’installation de Tomcat.

Log d’erreur Tomcat

Mon navigateur tourne quelques instants…puis finit par afficher l’erreur suivante : ‘PermGen space’.

Jenkins erreur PermGen Space

Ceci va nous permettre de voir comment identifier un problème sous Tomcat. Les fichiers logs de celui-ci se trouvent dans le répertoire ‘..\Apache Software Foundation\Tomcat 7.0\logs’. Il y a plusieurs fichiers de log, mais si vous rencontrez une erreur, vous devez trouver un fichier ‘tomcat7-stderr.xx.log’ (xx étant la date du jour).

Ouvrez ce fichier: vous verrez s’afficher la cause de l’erreur avec un message ‘java.lang.OutOfMemoryError: PermGen space’.

Sans rentrer dans les détails, le ‘PermGen space’ est l’espace mémoire réservé au stockage des classes et des informations associées. Il nous faut mettre à jour notre configuration Tomcat, de la manière suivante:

  • Lancer le fichier ‘Tomcat7w.exe’ (vous le trouverez dans le répertoire ‘..\Apache Software Foundation\Tomcat 7.0\bin’).
  • Dans l’onglet Java, entrer l’option suivante : -XX:MaxPermSize=256m.

Tomcat PermGen space

N’oubliez pas de cliquer le bouton ‘Apply’, puis ‘OK’ pour sortir. Il faut ensuire faire un start/stop du service Tomcat.

JenkinsMenuRelancer Jenkins dans votre navigateur. Et voilá : l’écran principal de Jenkins apparaìt enfin.

Remarquez mon interface en espagnol : Jenkins détecte automatiquement le langage à utiliser depuis la variable correspondante de votre browser (et oui, je vis à Madrid).

Bien. Allons jeter un coup d’oeil à la configuration de Jenkins, depuis le menu / le lien d’administration (‘Administrar Jenkins’ dans mon cas).

Configuration de Jenkins

Dans la page d’administration, un message m’avertit que le conteneur de servlets – c’est à dire Tomcat – n’est pas à la norme UTF8, ce qui pourrait poser problèmes avec des caractères non ASCII (comme c’est le cas en Espagne par exemple).

Nous allons donc résoudre ce problème de la manière suivante:

  • Dans le répertoire ‘..\Apache Software Foundation\Tomcat 7.0\conf’, rechercher le fichier ‘server.xml’.
  • Dans ce fichier, rechercher la section ‘Connector’ et insérer la ligne suivante :

URIEncoding=”UTF-8”

Voici à quoi cela ressemble dans mon fichier :

JenkinsConfigurationUTF8

A nouveau, faites un Restart (Stop/Start) du service Tomcat et vérifiez que le message d’erreur a disparu de la page d’administration de Jenkins,

Depuis cette page, allons voir maintenant les paramètres de configuration, en sélectionnant le premier menu de cette page (‘Configurar El Sistema’ en espagnol).

La première ligne dans cette page de configuration nous indque que Jenkins s’est installé dans un répertoire ‘C:\.jenkins’. Cela ne me convient pas du tout. Je souhaite centraliser tous mes logiciels dans un répertoire ‘C:\Soft’ et tout ce qui touche à mes analyses dans un répertoire ‘C:\SRC’ (par exemple). Il me faut donc pour cela modifier le paramètre de localisation du ’repository’ Jenkins.

Nous devons pour cela spécifier la variable ‘JENKINS HOME’, de la manière suivante : dans le répertoire ‘\Apache Software Foundation\Tomcat 7.0\conf’, localiser le fichier ‘context.xml’ et insérer la ligne suivante :

<Environment name=”JENKINS_HOME” value=”C:/SRC/Jenkins/” type=”java.lang.String”/>

JenkinsContextConf

Choisissez bien le répertoire oú vous souhaitez localiser le repository Jenkins : si vous modifiez celui par la suite, vous perdrez la configuration existante (sauf à déplacer votre repository actuel vers le nouvel emplacement).et donc tout ce que vous avez pu installer, comme par exemple le plugin SonarQube pour Jenkins.

Plugin dont nous verrons l’installation dans un prochain post.

A bientôt.

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 *