Ce post a pour objectif de présenter l’installation de Jenkins. Ce sera l’opportunité de détailler la résolution de quelques problèmes spécifiques à notre environnement.
Installation de Jenkins
Il existe plusieurs manières d’installer Jenkins. En fonction de notre environnement, nous avons choisi de télécharger depuis le site Jenkins un fichier jenkins.war.
Comme pour l’installation de Sonar, il nous suffit de copier ce fichier sous C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps, de (re-)démarrer Tomcat, puis de lancer Jenkins depuis son url et …
Rien. Mon navigateur tourne, tourne, tourne… J’ai beau arrêter et relancer Tomcat, plus rien ne marche. Même Sonar qui était accessible précédemment ne veut plus se lancer.
En regardant dans le répertoire ..\Apache Software Foundation\Tomcat 7.0\logs, on remarque alors un fichier tomcat7-stderr.xx.log (xx étant la date du jour) et si on ouvre celui-ci, un (ou plusieurs) message(s) java.lang.OutOfMemoryError: PermGen space.
Il nous faut mettre à jour notre configuration Tomcat, de la manière suivante:
- Lancer Tomcat7w.exe.
- Dans l’onglet Java, entrer l’option suivante -XX:MaxPermSize=256m.
Nous pouvons maintenant relancer Tomcat et accéder à Jenkins. Remarquez mon interface en espagnol : le langage est paramétré automatiquement en fonction de la variable correspondante du browser.
Bien. La première chose à faire est de jeter un coup d’oeil sur la configuration de Jenkins, en activant le menu d’administration (‘Administrar Jenkins’ dans mon cas).
Configuration de Jenkins
Dans la page d’administration, un message nous prévient que Tomcat n’est pas compatible UTF-8. Nul besoin d’entrer dans les détails, un lien Tomcat i18n nous amène directement sur la page d’aide correspondante du site web de Jenkins, où nous découvrons comment remédier à ce problème:
- 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 l’attribut suivant : URIEncoding= »UTF-8″. Voici à quoi cela ressemble dans mon fichier:
Stop/Start du service Tomcat et de retour dans la page d’administration de Jenkins, le message d’erreur a disparu.
Allons voir maintenant les paramètres de configuration: la première chose que nous remarquons, c’est que Jenkins s’est installé dans un répertoire C:\.jenkins. Oops, ce n’est pas exactement ce que je souhaite. Je préfère centraliser mon environnement d’analyse sur un disque dur réservé à cet effet. Voyons comment modifier la localisation du ‘repository’ Jenkins.
Il nous faut pour cela spécifier la variable JENKINS_HOME. Deux manière de procéder, pour une installation telle que la nôtre. La première est incorrecte, mais je la précise néanmoins car cette information n’est pas facile à rencontrer:
- Dans le répertoire \Apache Software Foundation\Tomcat 7.0\webapps\jenkins\WEB-INF, localiser le fichier web.xml qui constitue le point d’entrée de notre application Jenkins.
- Dans ce fichier, insérer la section suivante, afin de déclarer la variable JENKINS_HOME comme pointant sur un répertoire F:\Jenkins.
A éviter complètement car ce fichier – et donc notre modification – sera écrasé en cas d’installation d’un nouveau jenkins.war, lors d’un upgrade de version par exemple. Donc, sauf à vouloir réaliser cette modification à chaque nouvelle installation, mieux vaut procéder ainsi:
- 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 »/>
Cette fois-ci, nous déclarons notre ‘repository’ sur C:\SRC\Jenkins, directement au niveau de Tomcat et non plus au sein de la webapp Jenkins.
Il est recommandé de bien choisir cet emplacement avant d’installer le plugin Sonar ou de commencer à travailler avec Jenkins. En effet, si vous modifier le ‘home’ de Jenkins, celui-ci crée un nouvel environnement et vous perdrez votre configuration existante (sauf à déplacer votre repository actuel vers le nouvel emplacement).
Le prochain post portera sur l’installation du plugin Jenkins pour Sonar.
Cette publication est également disponible en Leer este articulo en castellano : liste des langues séparées par une virgule, Read that post in english : dernière langue.