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
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/
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.
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.
Paso 17
Ahora observaremos el panel de usuario de 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.