Está en la página 1de 24

Montar un Entorno de Integración Continua con Jenkins

Primer paso:
Instalación de SonarQube.
SonarQube es la herramienta que usaremos para revisar código fuente y analizar la calidad
del software que estamos desarrollando. Veremos como instalarla y configurarla.
Antes de comenzar con la instalación de SonarQube, es importante saber que esta
herramienta requiere de una base de datos para poder funcionar. Por defecto viene
configurada para trabajar con H2, una base de datos embebida que sólo se recomienda
utilizar para pruebas. SonarQube es compatible con MySQL 5.x, Oracle 10g/11g, PostgreSQL
8.x/9.x y SQLServer 2008/2012. Para nuestro ejemplo, utilizaremos MySQL 5.6, pero si
tienes otro gestor de base de datos instalado, puedes utilizarlo igualmente sin problemas.

Instalación de MySQL
MySQL dispone de una versión community que puedes descargarte en el siguiente link:

http://dev.mysql.com/downloads/mysql/
Selecciona la plataforma sobre la que vas a instalar MySQL y descarga el ejecutable de
instalación que corresponda. Para poder realizar la descarga, necesitaras disponer de una
cuenta web Oracle. Si aun no tienes creada una, puedes hacerlo en este link.

Una vez has descargado el instalador, sólo tendrás que ejecutarlo y seguir los pasos que te
indique el asistente.
Una vez finalizado el proceso de instalación, es recomendable añadir una nueva variable de
entorno al PATH de tu equipo que apunte a la ruta donde instalaste MySQL. Para el caso,
que la prueba se realice en OS X, se debe escribir desde una terminal el siguiente comando
para editar las variables de entorno:
1. touch ~/.bash_profile; open ~/.bash_profile
Y configuramos el PATH de la siguiente manera:
1. #MYSQL PATH
2. export MYSQL_PATH=/usr/local/mysql
3. #MAIN PATH
4. export PATH=$MYSQL_PATH/bin:$MYSQL_PATH/support-files:$PATH
Si el PATH lo estás editando en Mac OS X, una vez actualizado y guardado los cambios,
recuerda escribir el siguiente comando para cargar en memoria la nueva configuración sin
necesidad de reiniciar tu equipo:
1. source ~/.bash_profile
Ya sólo queda levantar el servidor de MySQL y probar que todo funciona correctamente.
Para ello, el script que utilizaremos se llama mysql.server que está ubicado en la carpeta
/support_files.

Para iniciar o parar el servidor de MySQL, es necesario que seas administrador de tu equipo.
Abre un terminal y escribe el comando sudo ./mysql.server start. Si te pide contraseña,
introduce la del administrador de tu equipo. Si todo está bien, deberías ver un mensaje
como el que muestra la imagen siguiente:

Para acceder a la consola de MySQL, es tan sencillo como escribir en el terminal mysql y si
quieres acceder con permisos de administrador, teclea mysql -u root -p
Para detener el servidor, simplemente introduce el comando:

1. sudo mysql.server stop


Es necesario crear un esquema y asignarle un usuario que permita crear, modificar y
eliminar datos en dicho esquema. Recuerda que el charset de la base de datos debe ser
UTF-8. El script SQL para crear el esquema y el usuario es el siguiente:
1. CREATE DATABASE sonarqube CHARACTER SET utf8 COLLATE utf8_general_ci;
2. CREATE USER 'sonarqube' IDENTIFIED BY 'sonarqube';
3. GRANT ALL ON sonarqube.* TO 'sonarqube'@'%' IDENTIFIED BY 'sonarqube';
4. GRANT ALL ON sonarqube.* TO 'sonarqube'@'localhost' IDENTIFIED BY 'sonarqube';
5. FLUSH PRIVILEGES;
Llegados a este punto, si has conseguido crear el esquema y usuario sin problemas, estamos
preparados para comenzar con la instalación de SonarQube.

Instalación de SonarQube

La instalación de esta herramienta es muy sencilla. Simplemente sigue los siguientes pasos:
1. Descarga aquí : https://www.sonarqube.org/downloads/
2. Descomprime el archivo zip que acabas de descargar en la carpeta donde quieras
instalar Sonar
3. Accede a la carpeta de instalación y localiza la carpeta ./bin. Aquí encontrarás una
subcarpeta por cada uno de los distintos sistemas operativos. Estas carpetas
contienen el ejecutable que levanta el servidor de Sonar. Localiza la tuya. En el caso
el SO sería OS X y el ejecutable sh.

4. Para levantar el servidor, puedes hacerlo desde un terminal introduciendo el


comando
1. ./sonar.sh console

5. Antes de levantar el servidor, localiza el archivo sonar.properties ubicado en


sonarqube-5.1.2/conf/ y ábrelo con un editor. Asegúrate que las siguientes líneas
están no estén comentadas:
1. sonar.web.host=localhost
2. sonar.web.port=9000

6. Ahora sí, inicia el servidor y si todo ha ido bien podrás acceder a SonarQube en la
URL http://localhost:9000/

7. Para logarte en SonarQube como administrador, introduce admin / admin

8. Si quieres obtener más información de SonarQube, puedes consultar en:


https://docs.sonarqube.org/display/SONAR/Documentation

Con estos pasos, hemos finalizado la instalación básica de SonarQube.


Por último, si utilizas Eclipse, informarte que existe un plugin para trabajar con Sonar.
Configurar SonarQube para trabajar con MySQL
SonarQube está configurado por defecto para trabajar con H2. Lo que vamos a hacer a
continuación es modificar esa configuración para integrarlo con MySQL.
1. Abre de nuevo el archivo properties y comenta la siguiente línea para indicar que
SonarQube no utilice H2 como base de datos:
1. #sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
2. A continuación quita el comentario de las siguientes líneas que también encontrarás en
el archivo, para indicar tanto la base de datos que utilizaremos como el usuario y contraseña
de acceso:
1. # User credentials
2. sonar.jdbc.username=sonar
3. sonar.jdbc.password=sonar
4.
5. # MySQL
6. sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=t
rue&characterEncoding=utf8&rew
riteBatchedStatements=true&useConfigs=maxPer
formance
3. Guarda los cambios realizados en el fichero sonar.properties y vuelve a levantar el
servidor de SonarQube. Si todo ha ido bien, deberías ver un mensaje parecido a este:
4. Abre un navegador, accede a la URL http://localhost:9000/ y comprueba que SonarQube
está disponible y tienes acceso. Deberías poder visualizar una pantalla como la siguiente:

Instalación y configuración de SonarQube Runner


Sonar-Runner es el cliente oficial para analizar proyectos con SonarQube. Para instalarlo y
configurarlo sigue los siguientes pasos:
1. Lo primero de todo es descargar la última versión del software disponible:
http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/
2. Descomprime el archivo zip que acabas de descargar en la carpeta que donde quieras
instalar el programa
3. Localiza el archivo sonar-runner.properties, ubicado en la carpeta sonar-runner-2.4/conf/
y ábrelo con un editor de textos para modificarlo.
4. Asegúrate que las siguientes líneas dentro del archivo no aparezcan comentadas y que
contengan la siguiente información:

5. Añadir al PATH una nueva variable de entorno que apunte al directorio de instalación de
Sonar-Runner. Como ejemplo quedaría de la siguiente manera:
6. Puedes comprobar que la configuración del PATH es correcta abriendo un nuevo terminal
e introduciendo el comando sonar-runner –h. Deberías tener que ver el siguiente mensaje

7. Con estos pasos ya tendríamos configurado tanto el cliente como el servidor de


SonarQube.
8. Si ahora quisieras analizar un proyecto java con Sonar-Runner, tendrías que crear en la
carpeta raíz del proyecto un archivo llamado sonar-project.properties que estuviera
configurado de la siguiente manera:
9. Por último, ya sólo queda ejecutar Sonar Runner. Sitúate con un terminal en la carpeta
raíz del proyecto java que quieres analizar y teclea el comando sonar-runner. Una vez
finalizado el análisis, podrás consultar los resultados en http://localhost:9000

Instalación de plugins en SonarQube para analizar nuevos lenguajes

Cuando instalas por primera vez SonarQube, la herramienta incluye por defecto el plugin
de java. Si tu objetivo es analizar otros lenguajes de programación, será necesario instalar
nuevos plugins. Imaginemos, por ejemplo, que nos interesa analizar código escrito en
python. Los pasos que seguiremos para instalar el plugin correspondiente serían:

1 – Autenticación: asegúrate que te has logado en Sonar con el usuario administrador (por
defecto admin/admin).
2 -Localización plugin: Accede a Setting –> System –> Update Center
3- Seleciona la pestaña Available Plugins

4 – En el apartado Languages encontrarás los plugins de los todos lenguajes que puedes
analizar con SonarQube. Para nuestro ejemplo seleccionaremos el de Python y haremos
click en el botón instalar
5 – Reiniciar el servidor de Sonar para aplicar los cambios. Si todo ha ido bien, en la pestaña
Installed plugins de Update Center deberá aparecer el nuevo plugin que acabamos de
instalar
Para utilizar el nuevo plugin, sólo tendremos que indicar en el archivo de propiedades sonar-
project.properties el lenguaje de programación que queremos analizar. En nuestro ejemplo
sería py (python)
1. # Lenguaje que a analizar
2. sonar.language=py
Finalizada la configuración de MysSQL y SonarQube, continua este tutorial con la instalación
de Nexus OSS.

Segundo paso:
Instalación de Nexus OSS

Nexus OSS es el componente que utilizaremos como repositorio de artefactos en nuestro


entorno de integración continua.

¿Qué es un Repositorio de Artefactos?: Cuando hablamos de proyectos Maven, los


artefactos son el resultado de construcción de una aplicación, es decir, el ejecutable, por
ejemplo un WAR o un JAR. Los artefactos se identifican por 3 propiedades: groupId,
artifactId y versión. Esta información es utilizada por Maven para identificar las
dependencias de un proyecto, necesarias a la hora de compilar y ejecutar la aplicación.
Los repositorios de artefactos juegan un papel importante en los ciclos de vida de
integración continua. Son útiles tanto para subir y compartir librerías de terceros (que
podemos utilizar en nuestros proyectos como dependencias) como para publicar los
artefactos que generemos de nuestra aplicación y que posteriormente serán desplegados
en los entornos de certificación, pre-producción y producción.

Comencemos con la instalación de Nexus OSS


1. Descargar Nexus OSS desde la web oficial: https://blog.sonatype.com/
2. Descomprime el archivo que acabas de descargar en la carpeta donde quieras
instalar la aplicación
3. Localiza y ejecuta el siguiente archivo para arrancar el servidor de Nexus
[nexus_install_dir]/nexus-2.11.4-01-bundle/nexus-2.11.4-0/bin/nexus start
4. Abre una nueva ventana en tu navegador y accede al Nexus:
http://localhost:8081/nexus/
5. Por defecto, para acceder como administrador a Nexus y consultar todos los
repositorios de artefactos, introduce este usuario y password: admin/admin123
Si todo ha ido bien, deberías ver en tu navegador una pantalla como la siguiente:

Con estos pasos finalizados, ya tienes Nexus disponible para comenzar a publicar
artefactos. El siguiente paso de este tutorial será aprender a instalar y configurar
Jenkins.

Tercer paso:
Instalar y configurar Jenkins
Jenkins será el componente que ejerza como servidor de integración continua en el
entorno que estamos montando.

Tipo de tareas puede realizar Jenkins


Jenkins, como servidor de integración continua, permite planificar y realizar multitud de
tareas, simplificando los procesos involucrados en el ciclo de vida de un proyecto.
Algunas de sus características más importantes son:
• Comprobación cada cierto periodo de tiempo si se ha realizado algún commit en
el repositorio de control de versiones (GIT), y en caso de ser así, compilar el
código y ejecutar las pruebas para testearlo.
• Notificación de errores que se hayan detectado tras las ejecución de pruebas,
por ejemplo vía mail, twitter, chat, etc.
• Ejecución de métricas de calidad y visualización los resultados.
• Generación de documentación asociada a un proyecto.

Instalación
En seguida comprobaras que instalar Jenkins es muy sencillo. Simplemente sigue los
siguientes pasos:

1. Descarga la herramienta de la página oficial: https://jenkins.io/index.html

Observa que puedes descargar Jenkins como paquete nativo para tu sistema
operativo o en formato WAR. Para nuestro ejemplo, te recomiendo la segunda
opción.
2. Ubica el WAR descargado (war) en la carpeta donde quieras instalar Jenkins.
3. Por último, sólo queda levantar el servidor. Para ello sitúate en la carpeta donde
guardaste el WAR y ejecuta desde línea de comandos la instrucción java -jar
jenkins.war start
• Otra opción es que utilices un servidor de aplicaciones que tengas
instalado para ejecutar el WAR, por ejemplo Tomcat 8.
4. Si el servidor se inició correctamente, podrás acceder a Jenkins en la URL
http://localhost:8080
Configuración
Lo primero de todo será configurar la herramienta para que localice las rutas de instalación
de los distintos componentes que forman parte de nuestro entorno de integración
continua. Para ello accede primero a la opción de menú: Administrar Jenkins -> Configurar
el sistema.
Cuarto paso:
Jenkins: Ejecución de Jobs
Tal como hemos visto Jenkins es una aplicación web que nos facilita la planificación y
ejecución de tareas(Jobs), como por ejemplo descargar programas desde repositorios de
código, construir y probar el software o monitorizar la ejecución y resultado de los jobs
ejecutados.
En esta nueva entrada vamos a aprender a configurar y ejecutar Jobs en Jenkins. Para ello,
crearemos dos tareas:
HelloWorldCI-develop: realizará tareas de construcción, test y análisis de código
HelloWorldCI -publish: realizará la publicación de un artefacto en Nexus OSS

Configuración de las credenciales de acceso a Git


Antes de empezar a crear los Jobs, es necesario dar permisos a Jenkins para acceder a
nuestro repositorio Git, para lo que necesitas configurar unas credenciales de acceso. Para
ello, en el menú principal de Jenkins click sobre la opción “Credentials”. Verás una tabla
donde puedes crear distintos dominios de credenciales. Para nuestro ejemplo usaremos el
dominio existente “Global credentials”, por lo que haz click sobre él.
¡Felicitaciones acabas de publicar tu primer artefacto!

También podría gustarte