Cómo instalar y configurar SonarQube en CentOS 7

SonarQube es una plataforma de código abierto para la inspección continua de la calidad del código. Se utiliza para realizar revisiones automáticas con análisis estático de código para detectar errores, olores de código y vulnerabilidades de seguridad en más de 20 lenguajes de programación.

Aquí vamos a instalar y configurar SonarQube 7.9.x LTS con Oracle JAVA 11, PostgreSQL 10.x, Nginx y Vamos a cifrar Certificados.

Índice

Instalación y configuración de SonarQube en CentOS

Ejecute los siguientes comandos utilizando el usuario root.

1. Actualizar sistema

yum update

2. Deshabilitar SELinux

Abra la configuración de SELinux y edite el archivo:

vim /etc/sysconfig/selinux

Cambie "SELINUX = enforcing" a "SELINUX = disabled".

Guardar y salir del archivo.

3. Establezca el nombre de host en el servidor.

 vim /etc/hostname

Si vim no está disponible, instale el comando vim primero.

 yum install vim -y

Luego reinicia el sistema.

reboot

4. Requisito previo

Puede consultar el documento oficial para obtener información completa.

  • Java (Oracle JRE 11 o OpenJDK 11)
  • PostgreSQL 10 o 9.3–9.6

Requisitos de hardware

  • Servidor con 2GB o más RAM
  • Configuración de sistemas para Linux

vm.max_map_count es mayor o igual a 262144
fs.file-max es mayor o igual a 65536
el usuario que ejecuta SonarQube puede abrir al menos 65536 descriptores de archivo
el usuario que ejecuta SonarQube puede abrir al menos 4096 subprocesos

5. Agregar configuración del sistema

Edite el archivo "sysctl.conf":

vim /etc/sysctl.conf

Agrega las siguientes líneas:

vm.max_map_count=262144
fs.file-max=65536

Valores de Sysctl
Valores de Sysctl

Guardar y salir del archivo.

6. Instale Oracle Java 11

Descargue Oracle JDK 11 desde aquí.

Oracle JAVA
Oracle JAVA

Antes de descargar, se redirigirá al inicio de sesión de Oracle. Si tiene una cuenta, úsela o cree una nueva.

Inicio de sesión de Oracle
Inicio de sesión de Oracle

Puede descargar el paquete rpm a su máquina y cargarlo en el servidor de sonda.

O puede utilizar los siguientes pasos:

a) Puede copiar el enlace de descarga de las descargas del navegador web.

Copiar enlace de descarga
Copiar enlace de descarga

b) Luego vaya a su servidor y descargue usando el comando "wget".

wget https://download.oracle.com/otn/java/jdk/11.0.5+10/e51269e04165492b90fa15af5b4eb1a5/jdk-11.0.5_linux-x64_bin.rpm?AuthParam=1573886978_5511f6acaa0b321333446e8e838c1045

descargar usando wget
descargar usando wget

c) Si el comando "wget" no está disponible en su sistema, instálelo usando el siguiente comando:

 yum install wget -y

Cambie el nombre del archivo descargado.

 mv jdk-11.0.5_linux-x64_bin.rpm?AuthParam=1573886978_5511f6acaa0b321333446e8e838c1045 jdk-11.0.5_linux-x64_bin.rpm

Instale Oracle JDK:

yum localinstall jdk-11.0.5_linux-x64_bin.rpm

Instalar Oracle JDK
Instalar Oracle JDK

Java instalado en la siguiente ubicación:

cd /usr/java/

Ubicación de instalación de Java
Ubicación de instalación de Java

Agregue variables de entorno de Java:

vim /etc/bashrc

Agregue las siguientes líneas al final del archivo:

export JAVA_HOME=/usr/java/jdk-11.0.5/
export JRE_HOME=/usr/java/jdk-11.0.5/jre

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

Agregar variables de entorno
Agregar variables de entorno

Guarde y salga del archivo y verifique la versión de Java.

java -version

Compruebe la versión de Java
Compruebe la versión de Java

7. Instale PostgreSQL 10

Puede ver las descargas de distribuciones basadas en Redhat aquí.

Instale el repositorio primero:

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Instalar repositorio
Instalar repositorio

Instalar servidor:

yum install postgresql10-server postgresql10-contrib

Instalar postgresql10
Instalar postgresql10

Inicialice la base de datos:

/usr/pgsql-10/bin/postgresql-10-setup initdb

Inicializar base de datos
Inicializar base de datos

Modifique el archivo pg_hba.conf; cambie "peer" a "trust" y "idnet" a "md5".

vim /var/lib/pgsql/10/data/pg_hba.conf

Cambiar archivo
Cambiar archivo

Una vez realizada la modificación, el archivo debe ser el siguiente:

Después de la modificación
Después de la modificación

Para iniciar el servicio y configurarlo en el arranque, habilite PostgreSQL en el arranque del sistema:

systemctl enable postgresql-10

Verifique el estado del servicio e inícielo.

systemctl status postgresql-10
systemctl start postgresql-10

Cambie la contraseña predeterminada del usuario de Postgres:

passwd postgres

Cambie al usuario de Postgres.

su - postgres

Crea un nuevo usuario.

createuser sonar

Cambie al shell de PostgreSQL.

psql

Shell de PostgreSQL
Shell de PostgreSQL

Establezca una contraseña para el usuario recién creado para la base de datos de SonarQube:

ALTER USER sonar WITH ENCRYPTED password 'd98ffW@123?Q';

Cree una nueva base de datos para la base de datos PostgreSQL.

CREATE DATABASE sonar OWNER sonar;

Salga del shell psql.

q

Salga del usuario "postgres".

exit

Usuario y base de datos
Usuario y base de datos

8. Descarga y configura SonarQube

Vamos a descargar el paquete en el directorio "opt". Así que cambia de directorio

cd /opt

Aquí vamos a utilizar la versión 7.9.x LTS y se puede descargar aquí.

I. Descargar la última versión de LTS

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip

II. Entonces descomprime

unzip sonarqube-7.9.1.zip

Si abrir la cremallera comando no disponible. Instalar en pc abrir la cremallera.

yum install unzip -y

III. Renombrar carpeta

mv sonarqube-7.9.1 sonarqube

IV. Modifique el "archivo sonar.properties".

vim /opt/sonarqube/conf/sonar.properties

Encuentra las siguientes líneas. Luego, elimine el comentario y modifique los valores.

sonar.jdbc.username=sonar
sonar.jdbc.password=d98ffW@123?Q
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.web.host=127.0.0.1
sonar.web.port=9000
sonar.web.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError
sonar.search.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError

Configuración de la ruta de almacenamiento de Elasticsearch:

sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp

Guardar y salir del archivo.

V. Crear un usuario para la sonda

useradd sonar

Configurar la clave:

passwd sonar

VI. Modificar los permisos de la carpeta

chown -R sonar:sonar /opt/sonarqube

Cree las siguientes carpetas y conceda permiso:

mkdir -p /var/sonarqube/data
mkdir -p /var/sonarqube/temp
chown -R sonar:sonar /var/sonarqube

VII. Configurar Sonarqube como servicio

vim /etc/systemd/system/sonarqube.service

Agregue el siguiente contenido al archivo:

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
LimitNOFILE=65536
LimitNPROC=4096
User=sonar
Group=sonar
Restart=on-failure

[Install]
WantedBy=multi-user.target

Vuelva a cargar el demonio “systemctl” y habilite la sonda en el arranque del sistema.

systemctl daemon-reload
systemctl enable sonarqube.service

Inicie el servicio y verifique su estado.

systemctl start sonarqube.service
systemctl status sonarqube.service

Estado de la sonda
Estado de la sonda

VIII. ubicación del archivo de registro

cd /opt/sonarqube/logs/
tail -f /opt/sonarqube/logs/sonar.log
tail -f /opt/sonarqube/logs/web.log
tail -f /opt/sonarqube/logs/es.log
tail -f /opt/sonarqube/logs/ce.log

9. Configure el proxy inverso

Instale Nginx, inicie el servicio y habilítelo en el arranque del sistema.

yum install -y nginx
systemctl start nginx
systemctl enable nginx

10. Configurar SSL

Habilite epel repo e instale certbot.

yum install – y epel-release
yum install certbot python2-certbot-nginx

Ejecute el siguiente comando para obtener un certificado y haga que Certbot edite su configuración de Nginx automáticamente para entregarla, activando el acceso HTTPS en un solo paso.

certbot --nginx

El comando hará preguntas. Luego agregue los detalles necesarios de acuerdo con eso.

Certbot
Certbot

Configuraciones de Certbot
Configuraciones de Certbot

Una vez finalizada la instalación, abra nginx.conf.

vim /etc/nginx/nginx.conf

Debería ver la configuración de certbot SSL.

Después de la configuración de SSL
Después de la configuración de SSL

Luego, agregue el siguiente contenido a los Bloques de ubicación.

location / {

proxy_pass "http://127.0.0.1:9000";
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;

}

Guardar y salir del archivo. El archivo modificado se ve a continuación:

Configuraciones de Nginx
Configuraciones de Nginx

Verifique la sintaxis de nginx:

nginx -t

Reinicie nginx:

systemctl restart nginx

11. DNS

Luego vaya a su administrador de DNS y agregue un registro A para su servidor de sonda.

A   Domain Name   Server IP

12. Modificar las reglas del cortafuegos

Si tiene el firewall habilitado, ejecute el siguiente comando para abrir el tráfico https.

firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

Regla de firewall HTTPS
Regla de firewall HTTPS

Si necesita abrir la sonda para una IP específica, ejecute el siguiente comando:

firewall-cmd --permanent --zone=public --add-rich-rule="
rule family="ipv4"
source address="122.43.8.188/32"
port protocol="tcp" port="443" accept"
firewall-cmd --reload

13. Explorar Sonarqube

Vaya a su navegador y escriba su nombre de dominio.

eg:- https://sonar.fosslinux.com/

Explorar Sonarqube
Explorar Sonarqube

Luego haga clic en "iniciar sesión".

14. Página de inicio de sesión

El nombre de usuario y la contraseña predeterminados es "admin".

Acceso
Acceso

Tablero

Tablero
Tablero

Ahora configuramos SonarQube con éxito. En nuestros próximos artículos, veremos cómo integrar SonarQube con Jenkins.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir