Hace unos días un compañero y amigo, +Celso Conde Pérez, me preguntó si conocía SonarQube.
Para los que no lo sepáis, SonarQube es una plataforma centralizada de evaluación de código. Es software libre, lo cual está genial, y permite la evaluación estática de código según patrones preestablecidos. El objetivo es garantizar la calidad del código escrito. En El Mundo en Bits hablamos hace tiempo de una herramienta similar, rats, y puedes leer el artículo aquí. Digo similar, ya que Sonar cubre muchos más aspectos.
Para los que no lo sepáis, SonarQube es una plataforma centralizada de evaluación de código. Es software libre, lo cual está genial, y permite la evaluación estática de código según patrones preestablecidos. El objetivo es garantizar la calidad del código escrito. En El Mundo en Bits hablamos hace tiempo de una herramienta similar, rats, y puedes leer el artículo aquí. Digo similar, ya que Sonar cubre muchos más aspectos.
Puesto que últimamente estoy enfrascado en algunas tareas de desarrollo de scripts y código, decidí probar esta herramienta, ya que trae soporte para multitud de lenguajes de programación (python, php, java, etc.). Así que lo primero fue levantar una máquina virtual para poder instalar el servidor web. Con la máquina levantada simplemente seguí las instrucciones de instalación paso a paso.
- Instalación de la base de datosAunque Sonar trae por defecto una base de datos embebida, tengo más experiencia y me gusta manejar los datos desde un MySQL. En este caso empleé para la máquina un sistema CentOS, así que,
shell> yum install mysql-server
Finalizada la instalación arrancamos el servicio,shell> service mysqld start
Y creamos la base de datos que vamos a emplear en sonar, así como un usuario con permisos,mysql> CREATE DATABASE sonar; mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar'; mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
- Instalar el servidor SonarQubeLo primero que tenemos que hacer es descargar la última versión del servidor. Para ello, desde la página oficial, sección descarga lo tenemos (la versión actual la puedes descargar desde aquí).
shell> cd /tmp shell> wget dist.sonar.codehaus.org/sonarqube-4.5.1.zip
A continuación lo descomprimimos,shell> unzip sonarqube-4.5.1.zip
Y lo movemos a /etc, como dice en la guía de instalación.shell> mv /tmp/sonarqube-4.5.1 /etc/sonarqube
Con esto ya tenemos el sistema SonarQube instalado y listo para poder usarse, aunque antes, debemos de configurar el acceso a base de datos. Para ello, editamos el fichero de propiedades de sonar, /etc/sonarqube/conf/sonar.properties y establecemos los parámetros de acceso a base de datos. El resto de la configuración nos sirve por defecto.... #sonar.embeddedDatabase.port=9092 ... sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance ... sonar.web.host=0.0.0.0 sonar.web.port=9000 ...
- Arrancar el sistemaCon todo listo y configurado ya podemos arrancar el servidor Sonar.
shell> /etc/sonarqube/bin/linux-x86-64/sonar.sh start
La carpeta dentro de bin a la que tendréis que acceder depende directamente del sistema sobre el que esté montando. En mi caso, es un sistema de 64 bits, por lo tanto empleo el script de 64bits.Tener presente que en el primer arranque hace un despliegue completo de toda la base de datos y esto, según el ordenador, podrá llevar más o menos tiempo. En mi caso, llevó algo más de 2 minutos, por lo que ser pacientes. El progreso de arranque lo podéis observar en el fichero de log (/etc/sonarqube/logs/sonar.log).
SonarQube está escrito en java, lo que hace necesario, para que todo funcione, tener instalado java en el sistema. Si no lo tenéis ya, habrá que ir a la web de Oracle y descargar la versión que corresponda del jdk e instalarlo. Por ejemplo, para la máquina en cuestión, descargué el jdk-8u25-linux-x64.rpm y tras su instalación el sistema Sonar ya pudo arrancar perfectamente.
Con la instalación del servidor Sonar, únicamente tenemos la parte centralizada de evaluación y análisis de código, pero tenemos pendiente todavía la configuración de los plugins de soporte de diversos lenguajes y también el cliente (sonar-runner), que analizará y enviará el código al servidor. Estas partes ocuparan las próximas entradas.
No hay comentarios :
Publicar un comentario