Guía para desplegar SonarQube en servidores Linux

Este documento detalla el proceso de instalación y puesta en marcha de SonarQube Community Edition en un entorno CentOS.

Adquisición del software

SonarQube se distribuye en varias ediciones. La versión de la Comunidad (CE) es de código abierto y gratuita, mientras que las ediciones Developer, Enterprise y Data Center son de pago.

Para estabilidad, se utilizará la versión 6.7.7: sonarqube-6.7.7.zip

Preparación del sistema

Antes de instalar, es crucial verificar que el sistema cumple con los requisitos oficiales, que incluyen especificaciones de hardware, configuración del sistema operativo y una versión compatible de Java.

Verificación del entorno

[analista@maestra ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[analista@maestra ~]$ java -version
openjdk version "11.0.14" 2022-01-18 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9-LTS, mixed mode, sharing)

Ajuste de parámetros del kernel (temporal)

[analista@maestra ~]$ sudo sysctl -w vm.max_map_count=262144
[analista@maestra ~]$ sudo sysctl -w fs.file-max=65536
[analista@maestra ~]$ sudo ulimit -n 65536

Persistencia de los parámetros del kernel

Para que los cambios sobrevivan a un reinicio, es necesario editar los archivos de configuración del sistema.

[analista@maestra ~]$ sudo tee -a /etc/sysctl.conf <<EOF
# Configuración para SonarQube
vm.max_map_count = 262144
fs.file-max = 65536
EOF

[analista@maestra ~]$ sudo tee -a /etc/security/limits.conf <<EOF
# Límites para el servicio de análisis de código
*    soft    nofile    65536
*    hard    nofile    65536
EOF

Es necesario reiniciar el servidor o aplicar los cambios con sudo sysctl -p.

Base de datos (recomendado para producción)

SonarQube incluye una base de datos H2 para pruebas. Para despliegues reales, se recomienda configurar una base de datos externa como PostgreSQL.

Proceso de instalación

El componente ElasticSearch, embebido en SonarQube, no puede ejecutarse con el usuario root. Por lo tanto, se debe crear un usuario de servicio dedicado.

[analista@maestra ~]$ sudo useradd -m -r -s /bin/bash sonarqube
[analista@maestra ~]$ sudo passwd sonarqube

Despliegue del paquete

[analista@maestra ~]$ wget -P /tmp https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.7.zip
[analista@maestra ~]$ sudo unzip /tmp/sonarqube-6.7.7.zip -d /opt/
[analista@maestra ~]$ sudo chown -R sonarqube:sonarqube /opt/sonarqube-6.7.7

Inicio del servicio

[analista@maestra ~]$ sudo -u sonarqube /opt/sonarqube-6.7.7/bin/linux-x86-64/sonar.sh start

Configuración del cortafuegos

[analista@maestra ~]$ sudo firewall-cmd --permanent --add-port=9000/tcp
[analista@maestra ~]$ sudo firewall-cmd --reload

La consola web de administración estará disponible en el puerto 9000 (http://<IP_SERVIDOR>:9000). Las credenciales por defecto son admin / admin.

Referencias

Etiquetas: sonarqube Análisis de código estático centos Elasticsearch PostgreSQL

Publicado el 7-27 05:10