{"id":472,"date":"2013-04-29T13:01:08","date_gmt":"2013-04-29T12:01:08","guid":{"rendered":"http:\/\/qualilogy.com\/es\/?p=472"},"modified":"2013-09-01T18:17:15","modified_gmt":"2013-09-01T17:17:15","slug":"instalar-sonarqube-jenkins","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/instalar-sonarqube-jenkins\/","title":{"rendered":"Instalar 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\" \/><\/a><span id=\"result_box\" lang=\"es\"><span class=\"hps\">En esta serie de<\/span> <span class=\"hps\">posts<\/span> <span class=\"hps\">sobre<\/span> <span class=\"hps\">la instalaci\u00f3n<\/span> <span class=\"hps\">y configuraci\u00f3n de<\/span> <span class=\"hps\">SonarQube<\/span><span>,<\/span> <span class=\"hps\">hemos visto c\u00f3mo <\/span><\/span><a title=\"Realizar un an\u00e1lisis de c\u00f3digo con el Sonar Runner\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-analis-con-sonar-runner\/\" target=\"_blank\">realisar un an\u00e1lisis de c\u00f3digo con el SonarQube Runner<\/a>.<\/p>\n<p>Hoy vamos a ver c\u00f3mo instalar y configurar Jenkins para gestionar todos nuestros an\u00e1lisis.<\/p>\n<p>Tambi\u00e9n ser\u00e1 una oportunidad para ver la resoluci\u00f3n de algunos problemas espec\u00edficos de nuestro entorno, y ver la forma de detectar estos problemas con el servidor Tomcat, que hemos en un post anterior <a title=\"Instalar Tomcat\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-tomcat\/\" target=\"_blank\">aqu\u00ed<\/a>.<\/p>\n<p><!--more--><\/p>\n<h2>Instalar 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\" \/><\/a>Vamos a instalar Jenkins como lo hemos hecho para SonarQube\u00a0con un archivo .war,<\/p>\n<p>Que descargamos desde <a title=\"Jenkins.org\" href=\"http:\/\/jenkins-ci.org\/\" target=\"_blank\">la pagina principal de Jenkins<\/a>.<\/p>\n<p>Voy a guardar este archivo &#8216;jenkins.war&#8217; en una carpeta dedicada a la gesti\u00f3n de mis diferentes versiones de SonarQube, sus plugins, y Jenkins, antes de copiarla en el directorio de Tomcat \u2018C:\\Program Files (x86)\\Apache Software Foundation\\Tomcat 7.0\\webapps\u2019.<\/p>\n<p>Tomcat desplegar\u00e1 a continuaci\u00f3n este archivo .war en una aplicaci\u00f3n web, que luego podemos acceder desde nuestro navegador con la siguiente url <strong>http:\/\/localhost:8888\/jenkins\/<\/strong>. Recodemosnos que 8888 es el puerto elegido durante la <a title=\"Installer Tomcat\" href=\"http:\/\/qualilogy.com\/es\/instalar-sonar-tomcat\/\" target=\"_blank\">instalaci\u00f3n de Tomcat<\/a>.<\/p>\n<h2>Log de errores Tomcat<\/h2>\n<p>Mi navegador se est\u00e1 ejecutando unos minutos &#8230; y luego muestra el siguiente error\u00a0: &#8216;PermGen space&#8217;.<\/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\" \/><\/a><\/p>\n<p>Esto nos permite ver c\u00f3mo identificar un problema con Tomcat. Los archivos de logs se encuentran en el directorio\u00a0\u2018..\\Apache Software Foundation\\Tomcat 7.0\\logs\u2019. Hay diferentes ficheros, pero en caso de error, se deber\u00eda encontrar un archivo \u2018tomcat7-stderr.xx.log\u2019 (xx representa la fecha).<\/p>\n<p>Cuando se abre este fichero, se puede ver la causa del error: \u2018java.lang.OutOfMemoryError: PermGen space\u2019.<\/p>\n<p>No es muy explicito pero sin entrar en detalles, el &#8216;PermGen space&#8217; es la memoria reservada para el almacenamiento de las clases Java y la informaci\u00f3n relacionada con ellas. Tenemos que cambiar nuestra configuraci\u00f3n de Tomcat, de la siguiente manera:<\/p>\n<ul>\n<li>Ejecutar el fichero &#8216;Tomcat7w.exe&#8217; (est\u00e1 localizado en la carpeta \u2018..\\Apache Software Foundation\\Tomcat 7.0\\bin\u2019).<\/li>\n<li>En la pesta\u00f1a Java, entrar la siguiente opci\u00f3n: -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\" \/><\/a><\/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>No te olvides de hacer clic en el bot\u00f3n &#8216;Aplicar&#8217; y luego en &#8216;Aceptar&#8217; para salir. Hay que hacer un arranque (Stop \/ Start) del servicio Tomcat.<\/p>\n<p>Luego, puedes actualizar Jenkins en tu navegador. Et voil\u00e1: la pantalla principal Jenkins finalmente aparece.<\/p>\n<p>Puedes ver que mi interfaz est\u00e1 en espa\u00f1ol: Jenkins detecta autom\u00e1ticamente el idioma que se debe utilizar con la variable correspondiente en tu navegador (y s\u00ed, yo vivo en Madrid).<\/p>\n<p>Bueno. Vamos a echar un vistazo a la configuraci\u00f3n de Jenkins, en el men\u00fa \/ el enlace Administraci\u00f3n (&#8216;Administrar Jenkins en mi caso)..<\/p>\n<h2>Configurar Jenkins<\/h2>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">En<\/span> <span class=\"hps\">la p\u00e1gina de administraci\u00f3n<\/span><span>,<\/span> <span class=\"hps\">un mensaje<\/span> <span class=\"hps\">me dice que el<\/span> <span class=\"hps\">contenedor de servlets<\/span> &#8211; <span class=\"hps\">es decir,<\/span> <span class=\"hps\">Tomcat<\/span> &#8211; <span class=\"hps\">no<\/span> <span class=\"hps\">respecta el est\u00e1ndar<\/span> <span class=\"hps\">UTF8<\/span><span>, lo que podr\u00eda<\/span> <span class=\"hps\">causar problemas con<\/span> <span class=\"hps\">caracteres no ASCII<\/span> <span class=\"hps\">(como es el<\/span> <span class=\"hps\">caso en espa\u00f1a<\/span><span>,<\/span> <span class=\"hps\">por ejemplo).<\/span><\/span><\/p>\n<p>Vamos a resolver este problema de la siguiente manera:<\/p>\n<ul>\n<li>En la carpeta \u2018..\\Apache Software Foundation\\Tomcat 7.0\\conf\u2019, buscar el archivo \u2018server.xml\u2019.<\/li>\n<li>En este fichero, buscar la secci\u00f3n \u2018Connector\u2019 e insertar la siguiente linea:<\/li>\n<\/ul>\n<p style=\"padding-left: 30px\"><strong>URIEncoding=\u201dUTF-8\u201d<\/strong><\/p>\n<p>Esta linea en mi fichero:<\/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\" \/><\/a><\/p>\n<p>De nuevo, hacer un Restart (Stop \/ Start) del servicio Tomcat y comprobar que el mensaje de error ha desaparecido.<\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Desde esta p\u00e1gina,<\/span> <span class=\"hps\">ahora<\/span> <span>seleccionamos el primer menu: <\/span><span class=\"hps atn\">&#8216;<\/span><span>Configurar<\/span> <span class=\"hps\">El Sistema<\/span><span>&#8216; en<\/span> <span class=\"hps\">espa\u00f1ol<\/span><span>)<\/span><span>.<\/span><\/span><\/p>\n<p><span class=\"hps\">La primera l\u00ednea de<\/span> est<span class=\"hps\">a<\/span> <span class=\"hps\">p\u00e1gina de configuraci\u00f3n<\/span> <span class=\"hps\">no<\/span> <span class=\"hps\">indica que<\/span> <span class=\"hps\">Jenkins<\/span> <span class=\"hps\">se instala<\/span> <span class=\"hps\">en el directorio<\/span> <span class=\"hps atn\">&#8216;<\/span><span>C<\/span><span>:\\<\/span><span class=\"hps\">Jenkins&#8217;<\/span><span>.<\/span> <span class=\"hps\">Esto<\/span> <span class=\"hps\">no me conviene<\/span> <span class=\"hps\">en absoluto.<\/span> <span class=\"hps\">Quiero<\/span> <span class=\"hps\">centralizar todos<\/span> <span class=\"hps\">mis softwares<\/span> <span class=\"hps\">en un directorio<\/span> <span class=\"hps atn\">&#8216;<\/span><span>C:<\/span><span class=\"hps\">\\<\/span><span class=\"hps\">Soft<\/span><span>&#8216; y<\/span> <span class=\"hps\">todo lo relacionado con<\/span> <span class=\"hps\">mis an\u00e1lisis<\/span> <span class=\"hps\">en un directorio<\/span> <span class=\"hps atn\">&#8216;<\/span><span>C:<\/span><span class=\"hps\">\\<\/span><span class=\"hps\">SRC<\/span><span class=\"atn\">\u00bb (<\/span><span>por ejemplo).<\/span> <span class=\"hps\">As\u00ed que <\/span><span class=\"hps\">necesito<\/span> <span class=\"hps\">cambiar el<\/span> <span class=\"hps\">par\u00e1metro de ubicaci\u00f3n<\/span> <span class=\"hps atn\">del \u00abr<\/span><span>epositorio<\/span><span>\u00ab<\/span> <span class=\"hps\">Jenkins.<\/span><\/p>\n<p><span id=\"result_box\" lang=\"es\"><span class=\"hps\">Hay que<\/span> <span class=\"hps\">especificar una<\/span><span class=\"hps\"> variable<\/span> <span class=\"hps\">&#8216;HOME<\/span> <span class=\"hps\">JENKINS<\/span><span>&#8216;<\/span><span>,<\/span> <span class=\"hps\">de la siguiente manera<\/span><span class=\"hps\">: en el directorio<\/span> &#8216;..<span class=\"hps\">\\<\/span><span class=\"hps\">Apache<\/span> <span class=\"hps\">Software Foundation<\/span><span class=\"hps\">\\<\/span><span class=\"hps\">Tomcat<\/span> <span class=\"hps\">7.0<\/span><span class=\"hps\">\\<\/span><span class=\"hps\">conf<\/span><span class=\"hps atn\">&#8216;<\/span><span>, buscar el archivo <\/span><span>&#8216;<\/span><span class=\"hps\">context.xml<\/span><span class=\"hps atn\">&#8216; <\/span><span>e insertar<\/span> <span class=\"hps\">la siguiente l\u00ednea:<\/span><\/span><\/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\/es\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-776\" alt=\"\" src=\"http:\/\/qualilogy.com\/es\/wp-content\/uploads\/sites\/2\/2013\/04\/JenkinsContextConf1.jpg\" width=\"734\" height=\"71\" \/><\/a><\/p>\n<p>Cuidado con la carpeta que vas a escoger: si la cambias despu\u00e9s, perder\u00e1s toda la configuraci\u00f3n de Jenkins y hasta lo que se ha instalado, como por ejemplo el plugin SonarQube\u00a0pour Jenkins.<\/p>\n<p>Plugin que vamos a instalar en un pr\u00f3ximo post.<\/p>\n<p>Hasta luego.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta serie de posts sobre la instalaci\u00f3n y configuraci\u00f3n de SonarQube, hemos visto c\u00f3mo realisar un an\u00e1lisis de c\u00f3digo con el SonarQube Runner. Hoy vamos a ver c\u00f3mo instalar y configurar Jenkins para gestionar todos nuestros an\u00e1lisis. Tambi\u00e9n ser\u00e1 una oportunidad para ver la resoluci\u00f3n de algunos problemas espec\u00edficos de nuestro entorno, y ver [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-472","post","type-post","status-publish","format-standard","hentry","category-sonar-instalacion"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/472"}],"collection":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/comments?post=472"}],"version-history":[{"count":13,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/472\/revisions"}],"predecessor-version":[{"id":474,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/472\/revisions\/474"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=472"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}