IT Blog

sonarqube en ubuntu server 22.04
Configuracion Documentacion seguridad servidores tutoriales

Instalando SonarQube en Ubuntu Server 22.04

SonarQube es una plataforma de análisis de código abierto que se utiliza para evaluar la calidad del código fuente de un proyecto de software. Esta herramienta utiliza una serie de métricas y técnicas para analizar el código fuente, detectar posibles problemas y mejorar la calidad del mismo.

SonarQube puede integrarse con varias herramientas de desarrollo de software, como Eclipse, Visual Studio, Jenkins, Bamboo, y muchas otras, lo que permite realizar análisis de calidad de código de forma automática en cada iteración del ciclo de vida del desarrollo de software.

El uso de SonarQube puede ayudar a los desarrolladores a mejorar la calidad del código fuente, reducir la complejidad, detectar posibles problemas de seguridad, y optimizar el rendimiento del software. Además, SonarQube también puede proporcionar informes detallados y estadísticas sobre la calidad del código, lo que puede ayudar a los desarrolladores y gerentes de proyecto a tomar decisiones informadas y mejorar la eficiencia del proceso de desarrollo de software.

En esta guía, aprenderá cómo instalar SonarQube en Ubuntu Server 22.04, con PostgreSQL, que se utilizará como base de datos.

Paso 1

Primero, actualiza e instala algunos paquetes esenciales en tu sistema.

sudo apt-get update
sudo apt-get install -y wget unzip openjdk-17-jre postgresql software-properties-common

Paso 2

Instalamos el sistema de base de datos PostgreSQL

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install postgresql-13

Paso 3

Una vez que PostgreSQL esté instalado, ejecute el siguiente comando para verificar el servicio ‘postgresql’ y asegurarse de que el servicio se está ejecutando.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Paso 4

Creamos una base de datos y un usuario para SonarQube en PostgreSQL:

sudo -u postgres psql
CREATE USER sonarqube WITH PASSWORD 'Password';
CREATE DATABASE sonarqube OWNER sonarqube;
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;

Paso 5

​Ahora,  creamos un nuevo usuario para SonarQube

sudo useradd -b /opt/sonarqube -s /bin/bash sonarqube

Paso 6

Configuramos parámetros personalizados del kernel en el archivo sysctl.conf. Agregamos la siguiente configuración al final de la línea. SonarQube requiere que el parámetro del kernel vm.max_map_count fuera mayor que ‘524288’ ​​y fx.file-max mayor que ‘131072’.

sudo vim /etc/sysctl.conf
vm.max_map_count=524288
fs.file-max=131072

Salvamos y ejecutamos el siguiente comando para aplicar los cambios.

sudo sysctl --system

Paso 7

Configuramos ulimit, valores necesarios para el buen funcionamiento de SonarQube.

sudo vim /etc/security/limits.d/99-sonarqube.conf

sonarqube   -   nofile   131072
sonarqube   -   nproc    8192

Salvamos el archivo, y ejecutamos los siguientes comandos para tener efecto inmediato de ulimit.

ulimit -n 131072
ulimit -u 8192

Paso 8

Descargamos el paquete de SonarQube, para la fecha de este tutorial la ultima versión era la 9.9.0.65466 descargada de la pagina oficinal

sudo wget -c https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.0.65466.zip

Paso 9

Extraiga el paquete de SonarQube usando el comando de descompresión a continuación.

unzip sonarqube-9.9.0.65466.zip

Paso 10

Movemos el directorio ‘sonarqube-9.9.0.65466’ a ‘/opt/sonarqube’ usando el siguiente comando.

sudo mv sonarqube-9.9.0.65466 /opt/sonarqube

Paso 11

Por último, cambie la propiedad del directorio de instalación de SonarQube ‘/opt/sonarqube’ al usuario ‘sonarqube’ a través del comando chown como se muestra a continuación.

sudo chown -R sonarqube:sonarqube /opt/sonarqube

Paso 12

Editamos el archivo de configuración de SonarQube para continuar con la instalación.

sudo vim /opt/sonarqube/conf/sonar.properties

Es necesario configurar los valores de conexión con la base de datos, para esto agregamos lo siguiente, cambiando los valores por los configurados en la base de datos.

sonar.jdbc.username=sonarqube
sonar.jdbc.password=Password

sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube

Ahora, elimine el comentario de la siguiente configuración para configurar el tamaño máximo de memoria de almacenamiento dinámico para el proceso de búsqueda elástica. En su ejemplo, el máximo será de 512 MB.

sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError

Por ultimo descomente o agregue las siguientes lineas, para configurar el puerto del SonarQube. Además, el nivel de registro será ‘INFO’ y se almacenará en el directorio ‘logs’ del directorio de instalación de SonarQube.

sonar.web.port=9000
sonar.web.javaAdditionalOpts=-server

sonar.log.level=INFO
sonar.path.logs=logs

Paso 13

Después de terminar la configuración de SonarQube, configuramos el archivo de servicio systemd. Esto le permite controlar fácilmente el proceso de SonarQube mediante el comando systemctl.

sudo vim /etc/systemd/system/sonarqube.service

Agregamos las siguientes lineas.

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
User=sonarqube
Group=sonarqube
Restart=always
LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target

Salvamos y cargamos el administrador systemd usando el siguiente comando.

sudo systemctl daemon-reload

Ahora, inicie y habilite el servicios de SonarQube a través del comando systemctl.

sudo systemctl start sonarqube.service
sudo systemctl enable sonarqube.service

Por último, verifique el estado de ‘sonarqube.service’ usando el siguiente comando y asegúrese de que su estado se esté ejecutando.

sudo systemctl status sonarqube.service

status sonarqube

Ahora que SonarQube se esta ejecutando como un servicio systemd, continuamos la instalación via web.

Paso 14

Ingresamos en un navegador el url y el puerto del SonarQube. http://direccion_ip:9000/

sonarqube arriba

Actualizamos el navegador o ingresamos nuevamente el url en el navegador.

Paso 15

Ahora veremos la página de inicio de sesión de SonarQube. Ingrese el nombre de usuario y la contraseña predeterminados admin/admin y haga clic en Iniciar sesión.

inicio sonarqube

Paso 16

Una vez que haya iniciado sesión, se le pedirá que configure una nueva contraseña para SonarQube. Ingrese la contraseña anterior admin, luego ingrese la nueva contraseña segura y repita, luego haga clic en Actualizar.

actualizacion de contraseña sonarqube

Paso 17

Ahora observaremos el panel de usuario de SonarQube.

tablero sonarqube

SonarQube ahora está instalado en su servidor Ubuntu 22.04. Ahora puede agregar el proyecto que analizará a SonarQube a través del repositorio git, bitbucket, azure o de forma manual.

Nota: Esta versión de SonarQube esta compilada con la versión mas reciente de Java Runtime (Versiones de archivos de clase 61.0), la versión del paquete que instala por defecto ubuntu es de la clase 55. Por eso la instalación del paquete openjdk-17-jre.

Para cualquier consulta o sugerencia no duden en contactarnos.