{"id":748,"date":"2013-04-28T07:17:20","date_gmt":"2013-04-28T06:17:20","guid":{"rendered":"http:\/\/qualilogy.com\/fr\/?p=748"},"modified":"2013-09-01T18:13:04","modified_gmt":"2013-09-01T17:13:04","slug":"installer-sonarqube-jenkins","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/installer-sonarqube-jenkins\/","title":{"rendered":"Installer SonarQube &#8211; Jenkins"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-749\" alt=\"Install Jenkins\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsInstall.jpg\" width=\"274\" height=\"350\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsInstall.jpg 274w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsInstall-234x300.jpg 234w\" sizes=\"(max-width: 274px) 100vw, 274px\" \/><\/a>Dans cette s\u00e9rie de posts sur l&rsquo;installation et la configuration de SonarQube, nous avons vu pr\u00e9c\u00e9demment comment <a title=\"R\u00e9aliser une analyse de code avec le Sonar Runner\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-analyse-avec-sonar-runner\/\" target=\"_blank\">r\u00e9aliser une analyse de code avec le SonarQube Runner<\/a>.<\/p>\n<p>Aujourd&rsquo;hui, nous allons voir comment installer et configurer Jenkins, afin d&rsquo;utiliser celui-ci pour g\u00e9rer toutes nos analyses.<\/p>\n<p>Ce sera \u00e9galement l\u2019occasion de d\u00e9tailler la r\u00e9solution de quelques probl\u00e8mes sp\u00e9cifiques \u00e0 notre environnement, et accessoirement de voir comment d\u00e9tecter ces probl\u00e8mes avec le serveur Tomcat, dont nous avons auparavant d\u00e9taill\u00e9 auparavant <a title=\"Installer Tomcat\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-tomcat\/\" target=\"_blank\">l&rsquo;installation<\/a>.<\/p>\n<p><!--more--><\/p>\n<h2>Installation de Jenkins<\/h2>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsDownload.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-755\" alt=\"Download Jenkins\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsDownload.jpg\" width=\"331\" height=\"139\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsDownload.jpg 331w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsDownload-300x125.jpg 300w\" sizes=\"(max-width: 331px) 100vw, 331px\" \/><\/a>Tout comme pour SonarQube, nous avons choisi d&rsquo;installer Jenkins sous la forme d&rsquo;un fichier .war, que nous t\u00e9l\u00e9chargeons depuis <a title=\"Jenkins.org\" href=\"http:\/\/jenkins-ci.org\/\" target=\"_blank\">la page d&rsquo;accueil de Jenkins<\/a>.<\/p>\n<p>Je vais garder ce fichier &lsquo;jenkins.war&rsquo; dans un dossier d\u00e9di\u00e9 \u00e0 la gestion des diff\u00e9rentes versions de SonarQube, ses plugins, et Jenkins, avant de le recopier sous Tomcat, dans le r\u00e9pertoire &lsquo;C:\\Program Files (x86)\\Apache Software Foundation\\Tomcat 7.0\\webapps&rsquo;.<\/p>\n<p>Tomcat va alors d\u00e9ployer ce fichier .war dans une webapp, \u00e0 laquelle nous pouvons ensuite acc\u00e9der depuis notre navigateur, avec l&rsquo;url suivante <strong>http:\/\/localhost:8888\/jenkins\/<\/strong>. Rappel: &lsquo;8888&rsquo; est le port d\u00e9sign\u00e9 lors de <a title=\"Installer Tomcat\" href=\"http:\/\/qualilogy.com\/fr\/installer-sonar-tomcat\/\" target=\"_blank\">l&rsquo;installation de Tomcat<\/a>.<\/p>\n<h2>Log d&rsquo;erreur Tomcat<\/h2>\n<p>Mon navigateur tourne quelques instants&#8230;puis finit par afficher l&rsquo;erreur suivante : &lsquo;PermGen space&rsquo;.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsPermGenSpaceErrror.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-759\" alt=\"Jenkins erreur PermGen Space\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsPermGenSpaceErrror.jpg\" width=\"743\" height=\"249\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsPermGenSpaceErrror.jpg 743w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsPermGenSpaceErrror-300x100.jpg 300w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsPermGenSpaceErrror-624x209.jpg 624w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><\/a><\/p>\n<p>Ceci va nous permettre de voir comment identifier un probl\u00e8me sous Tomcat. Les fichiers logs de celui-ci se trouvent dans le r\u00e9pertoire \u2018..\\Apache Software Foundation\\Tomcat 7.0\\logs\u2019. Il y a plusieurs fichiers de log, mais si vous rencontrez une erreur, vous devez trouver un fichier \u2018tomcat7-stderr.xx.log\u2019 (xx \u00e9tant la date du jour).<\/p>\n<p>Ouvrez ce fichier: vous verrez s&rsquo;afficher la cause de l&rsquo;erreur avec un message \u2018java.lang.OutOfMemoryError: PermGen space\u2019.<\/p>\n<p>Sans rentrer dans les d\u00e9tails, le &lsquo;PermGen space&rsquo; est l&rsquo;espace m\u00e9moire r\u00e9serv\u00e9 au stockage des classes et des informations associ\u00e9es. Il nous faut mettre \u00e0 jour notre configuration Tomcat, de la mani\u00e8re suivante:<\/p>\n<ul>\n<li>Lancer le fichier &lsquo;Tomcat7w.exe&rsquo; (vous le trouverez dans le r\u00e9pertoire \u2018..\\Apache Software Foundation\\Tomcat 7.0\\bin\u2019).<\/li>\n<li>Dans l\u2019onglet Java, entrer l\u2019option suivante : -XX:MaxPermSize=256m.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/TomcatPermGenSpace.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-762\" alt=\"Tomcat PermGen space\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/TomcatPermGenSpace.jpg\" width=\"415\" height=\"399\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/TomcatPermGenSpace.jpg 415w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/TomcatPermGenSpace-300x288.jpg 300w\" sizes=\"(max-width: 415px) 100vw, 415px\" \/><\/a><\/p>\n<p>N&rsquo;oubliez pas de cliquer le bouton &lsquo;Apply&rsquo;, puis &lsquo;OK&rsquo; pour sortir. Il faut ensuire faire un start\/stop du service Tomcat.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsMenu.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-763\" alt=\"JenkinsMenu\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsMenu.jpg\" width=\"268\" height=\"200\" \/><\/a>Relancer Jenkins dans votre navigateur. Et voil\u00e1 : l&rsquo;\u00e9cran principal de Jenkins appara\u00ect enfin.<\/p>\n<p>Remarquez mon interface en espagnol : Jenkins d\u00e9tecte automatiquement le langage \u00e0 utiliser depuis la variable correspondante de votre browser (et oui, je vis \u00e0 Madrid).<\/p>\n<p>Bien. Allons jeter un coup d&rsquo;oeil \u00e0 la configuration de Jenkins, depuis le menu \/ le lien d&rsquo;administration (&lsquo;Administrar Jenkins&rsquo; dans mon cas).<\/p>\n<h2>Configuration de Jenkins<\/h2>\n<p>Dans la page d&rsquo;administration, un message m&rsquo;avertit que le conteneur de servlets \u2013 c&rsquo;est \u00e0 dire Tomcat \u2013 n&rsquo;est pas \u00e0 la norme UTF8, ce qui pourrait poser probl\u00e8mes avec des caract\u00e8res non ASCII (comme c&rsquo;est le cas en Espagne par exemple).<\/p>\n<p>Nous allons donc r\u00e9soudre ce probl\u00e8me de la mani\u00e8re suivante:<\/p>\n<ul>\n<li>Dans le r\u00e9pertoire \u2018..\\Apache Software Foundation\\Tomcat 7.0\\conf\u2019, rechercher le fichier \u2018server.xml\u2019.<\/li>\n<li>Dans ce fichier, rechercher la section \u2018Connector\u2019 et ins\u00e9rer la ligne suivante :<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><strong>URIEncoding=\u201dUTF-8\u201d<\/strong><\/p>\n<p>Voici \u00e0 quoi cela ressemble dans mon fichier :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsConfigurationUTF8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-765\" alt=\"JenkinsConfigurationUTF8\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsConfigurationUTF8.jpg\" width=\"503\" height=\"108\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsConfigurationUTF8.jpg 503w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsConfigurationUTF8-300x64.jpg 300w\" sizes=\"(max-width: 503px) 100vw, 503px\" \/><\/a><\/p>\n<p>A nouveau, faites un Restart (Stop\/Start) du service Tomcat et v\u00e9rifiez que le message d\u2019erreur a disparu de la page d\u2019administration de Jenkins,<\/p>\n<p>Depuis cette page, allons voir maintenant les param\u00e8tres de configuration, en s\u00e9lectionnant le premier menu de cette page (&lsquo;Configurar El Sistema&rsquo; en espagnol).<\/p>\n<p>La premi\u00e8re ligne dans cette page de configuration nous indque que Jenkins s\u2019est install\u00e9 dans un r\u00e9pertoire \u2018C:\\.jenkins\u2019. Cela ne me convient pas du tout. Je souhaite centraliser tous mes logiciels dans un r\u00e9pertoire \u2018C:\\Soft\u2019 et tout ce qui touche \u00e0 mes analyses dans un r\u00e9pertoire \u2018C:\\SRC\u2019 (par exemple). Il me faut donc pour cela modifier le param\u00e8tre de localisation du \u2019repository\u2019 Jenkins.<\/p>\n<p>Nous devons pour cela sp\u00e9cifier la variable \u2018JENKINS HOME\u2019, de la mani\u00e8re suivante : dans le r\u00e9pertoire \u2018\\Apache Software Foundation\\Tomcat 7.0\\conf\u2019, localiser le fichier \u2018context.xml\u2019 et ins\u00e9rer la ligne suivante :<\/p>\n<p style=\"padding-left: 30px\"><strong>&lt;Environment name=\u201dJENKINS_HOME\u201d value=\u201dC:\/SRC\/Jenkins\/\u201d type=\u201djava.lang.String\u201d\/&gt;<\/strong><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-776\" alt=\"JenkinsContextConf\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1.jpg\" width=\"734\" height=\"71\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1.jpg 734w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1-300x29.jpg 300w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1-624x60.jpg 624w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<p>Choisissez bien le r\u00e9pertoire o\u00fa vous souhaitez localiser le repository Jenkins : si vous modifiez celui par la suite, vous perdrez la configuration existante (sauf \u00e0 d\u00e9placer votre repository actuel vers le nouvel emplacement).et donc tout ce que vous avez pu installer, comme par exemple le plugin SonarQube pour Jenkins.<\/p>\n<p>Plugin dont nous verrons l&rsquo;installation dans un prochain post.<\/p>\n<p>A bient\u00f4t.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cette s\u00e9rie de posts sur l&rsquo;installation et la configuration de SonarQube, nous avons vu pr\u00e9c\u00e9demment comment r\u00e9aliser une analyse de code avec le SonarQube Runner. Aujourd&rsquo;hui, nous allons voir comment installer et configurer Jenkins, afin d&rsquo;utiliser celui-ci pour g\u00e9rer toutes nos analyses. Ce sera \u00e9galement l\u2019occasion de d\u00e9tailler la r\u00e9solution de quelques probl\u00e8mes sp\u00e9cifiques [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-748","post","type-post","status-publish","format-standard","hentry","category-sonar-installation"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/748"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=748"}],"version-history":[{"count":24,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/748\/revisions"}],"predecessor-version":[{"id":751,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/748\/revisions\/751"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}