GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar SonarQube en Ubuntu 18.04 LTS

SonarQube es una plataforma de código abierto para inspeccionar continuamente la calidad del código de las aplicaciones. Está escrito en lenguaje Java y admite múltiples bases de datos. Puede inspeccionar el código y verificar el estado de una aplicación para más de 20 lenguajes de programación, incluidos Java, C, C ++, C #, PHP y lenguajes web como JavaScript, HTML y CSS. SonarQube puede analizar el código fuente, encontrar vulnerabilidades de seguridad, detectar errores y mostrar el resultado en un panel basado en la web. Puedes integrar fácilmente SonarQube con Maven, Ant, Gradle, MSBuild, LDAP, Active Directory y GitHub.

En este tutorial, aprenderemos a instalar SonarQube en un servidor Ubuntu 18.04 LTS (Bionic Beaver).

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Un usuario no root con privilegios sudo.

Cómo empezar

Antes de comenzar, deberá actualizar su sistema con la última versión. Puede hacerlo ejecutando el siguiente comando:

sudo apt-get update -y
sudo apt-get upgrade -y

Una vez que su sistema esté actualizado, reinícielo para aplicar los cambios.

Instalar Java

SonarQube está escrito en lenguaje Java, por lo que deberá instalar Java en su sistema. Primero, agregue el repositorio de Java con el siguiente comando:

sudo add-apt-repository ppa:webupd8team/java

A continuación, actualice el repositorio e instale Java con el siguiente comando:

sudo apt-get update -y
sudo apt-get install oracle-java8-installer -y

Una vez que Java esté instalado, verifique la versión de Java usando el siguiente comando:

java -version

Salida:

openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)

Instalar y configurar PostgreSQL

De forma predeterminada, la última versión de PostgreSQL no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, deberá agregar el repositorio de PostgreSQL a su sistema.

Puedes hacer esto con el siguiente comando:

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

A continuación, actualice el repositorio e instale PostgreSQL con el siguiente comando:

sudo apt-get update -y
sudo apt-get install postgresql postgresql-contrib

Una vez completada la instalación, verifique el estado de PostgreSQL con el siguiente comando:

sudo systemctl status postgresql

Salida:

? postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sun 2018-12-02 08:49:29 UTC; 4h 30min ago
  Process: 1295 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 1295 (code=exited, status=0/SUCCESS)

Dec 02 08:49:29 ubuntu1804 systemd[1]: Starting PostgreSQL RDBMS...
Dec 02 08:49:29 ubuntu1804 systemd[1]: Started PostgreSQL RDBMS.

A continuación, cambie al usuario de postgres con el siguiente comando:

su - postgres

A continuación, cree un usuario de sonda con el siguiente comando:

createuser sonar

A continuación, cambie al shell de PostgreSQL con el siguiente comando:

psql

A continuación, establezca la contraseña para el usuario de la sonda y cree una base de datos de la sonda con el siguiente comando:

ALTER USER sonar WITH ENCRYPTED password 'password';
CREATE DATABASE sonar OWNER sonar;

A continuación, salga del shell de PostgreSQL:

\q

Instalar y configurar SonarQube

Primero, crea un usuario para SonarQube con el siguiente comando:

sudo adduser sonar

A continuación, descarga la última versión de SonarQube con el siguiente comando:

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

Una vez completada la descarga, descomprima el archivo descargado con el siguiente comando:

unzip sonarqube-6.7.6.zip

A continuación, copie el directorio extraído en /opt con el siguiente comando:

sudo cp -r sonarqube-6.7.6 /opt/sonarqube

A continuación, otorgue la propiedad al usuario del sonar con el siguiente comando:

sudo chown -R sonar:sonar /opt/sonarqube

A continuación, deberá configurar SonarQube para que se ejecute como usuario de sonda. Puedes hacer esto con el siguiente comando:

sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh

Realice los siguientes cambios:

RUN_AS_USER=sonar

Guarde y cierre el archivo. Luego, abra el archivo de configuración predeterminado de SonarQube y modifique las credenciales de la base de datos con la que creamos anteriormente:

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

Realice los siguientes cambios:

sonar.jdbc.username=sonar
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
sonar.web.host=127.0.0.1
sonar.search.javaOpts=-Xms512m  -Xmx512m

Guarde y cierre el archivo cuando haya terminado.

Crear archivo de Systemd Service para SonarQube

A continuación, deberá crear un archivo de servicio systemd para administrar el servicio SonarQube. Puedes hacer esto con el siguiente comando:

sudo nano /etc/systemd/system/sonar.service

Agregue las siguientes líneas:

[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=sonar
Group=sonar
Restart=always

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo cuando haya terminado. Luego, inicie el servicio SonarQube y habilítelo para que se inicie en el momento del arranque con el siguiente comando:

sudo systemctl start sonar
sudo systemctl enable sonar

Puedes comprobar el estado del servicio de SonarQube con el siguiente comando:

sudo systemctl status sonar

Salida:

? sonar.service - SonarQube service
   Loaded: loaded (/etc/systemd/system/sonar.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-12-02 13:55:34 UTC; 2min 52s ago
  Process: 2339 ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start (code=exited, status=0/SUCCESS)
 Main PID: 2396 (wrapper)
    Tasks: 133 (limit: 2323)
   CGroup: /system.slice/sonar.service
           ??2396 /opt/sonarqube/bin/linux-x86-64/./wrapper /opt/sonarqube/bin/linux-x86-64/../../conf/wrapper.conf wrapper.syslog.ident=SonarQ
           ??2399 java -Dsonar.wrapped=true -Djava.awt.headless=true -Xms8m -Xmx32m -Djava.library.path=./lib -classpath ../../lib/jsw/wrapper-
           ??2445 /usr/lib/jvm/java-8-oracle/jre/bin/java -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOc
           ??2545 /usr/lib/jvm/java-8-oracle/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -
           ??2622 /usr/lib/jvm/java-8-oracle/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -

Dec 02 13:55:33 ubuntu1804 systemd[1]: Starting SonarQube service...
Dec 02 13:55:33 ubuntu1804 sonar.sh[2339]: Starting SonarQube...
Dec 02 13:55:34 ubuntu1804 sonar.sh[2339]: Started SonarQube.
Dec 02 13:55:34 ubuntu1804 systemd[1]: Started SonarQube service.

Configurar Apache para SonarQube

De forma predeterminada, SonarQube escucha en el puerto 9000. Por lo tanto, deberá instalar y configurar Apache como proxy inverso para acceder a SonarQube mediante el puerto 80.

Para hacerlo, instala Apache con el siguiente comando:

sudo apt-get install apache2 -y

A continuación, habilite el módulo mod_proxy con el siguiente comando:

sudo a2enmod proxy
sudo a2enmod proxy_http

A continuación, cree un archivo de host virtual de Apache para SonarQube con el siguiente comando:

sudo nano /etc/apache2/sites-available/sonar.conf

Agregue las siguientes líneas:

<VirtualHost *:80>
    ServerName example.com
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:9000/
    ProxyPassReverse / http://127.0.0.1:9000/
    TransferLog /var/log/apache2/sonarm_access.log
    ErrorLog /var/log/apache2/sonar_error.log
</VirtualHost>

Reemplace example.com con su propio nombre de dominio. Guarde y cierre el archivo. Luego, habilite el archivo de host virtual de SonarQube con el siguiente comando:

sudo a2ensite sonar

Finalmente, reinicia el servicio de Apache y SonarQube para aplicar todos los cambios con el siguiente comando:

sudo systemctl restart apache2
sudo systemctl restart sonar

De forma predeterminada, SonarQube almacena sus registros en el directorio /opt/sonarqube/logs. Puedes consultar el registro de SonarQube con el siguiente comando:

sudo tail -f /opt/sonarqube/logs/sonar.log

Salida:

Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
  Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

2018.12.02 13:55:43 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2018.12.02 13:55:44 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2018.12.02 13:55:45 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch -Epath.conf=/opt/sonarqube/temp/conf/es
2018.12.02 13:55:45 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2018.12.02 13:55:48 INFO  app[][o.e.p.PluginsService] no modules loaded
2018.12.02 13:55:48 INFO  app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2018.12.02 13:56:34 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2018.12.02 13:56:34 INFO  app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [/opt/sonarqube]: /usr/lib/jvm/java-8-oracle/jre/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/opt/sonarqube/temp -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -cp ./lib/common/*:./lib/server/*:/opt/sonarqube/lib/jdbc/postgresql/postgresql-42.2.1.jar org.sonar.server.app.WebServer /opt/sonarqube/temp/sq-process420500314195865484properties

También puede consultar el registro web de SonarQube con el siguiente comando:

sudo tail -f /opt/sonarqube/logs/web.log

Salida:

2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarJava / 4.15.0.12310 / 572454b93016ec73a53fe0e07b2ffdc356d21ba9
2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarPHP / 2.11.0.2485 / 741861a29e5f9a26c6c99c06268facb6c4f4a882
2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarPython / 1.8.0.1496 / 3fe3bc4d0273a5721ea2fb368dc45b1bb82fede3
2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarQube :: Plugins :: SCM :: Git / 1.3.0.869 / 4da53e3f9e55f4f2e5796625cb0c5768ed152079
2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarQube :: Plugins :: SCM :: SVN / 1.6.0.860 / 2111fdbd1dddda4ad6d4ed6486fd0b18c1010d3b
2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarTS / 1.1.0.1079 / 042c9e65239a47d92d305f9767f730b3cc1e5ed3
2018.12.02 13:57:03 INFO  web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarXML / 1.4.3.1027 / 39588245cecf538bb27be4e496ff303b0143d20b
2018.12.02 13:57:07 INFO  web[][o.s.s.p.d.m.c.PostgresCharsetHandler] Verify that database charset supports UTF8
2018.12.02 13:57:09 INFO  web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter [email protected] [pattern=UrlPattern{inclusions=[/api/system/migrate_db/*, ...], exclusions=[/api/properties*, ...]}]
2018.12.02 13:57:09 INFO  web[][o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
2018.12.02 13:57:16 INFO  web[][o.s.s.p.UpdateCenterClient] Update center: https://update.sonarsource.org/update-center.properties (no proxy)

Accede a SonarQube

SonarQube ya está instalado y configurado. Es hora de acceder a él a través del navegador web.

Abra su navegador web y escriba la URL http://example.com. Será redirigido a la siguiente página:

Aquí, haga clic en Registrar En botón. Debería ver la siguiente página:

Proporcione el nombre de usuario y la contraseña de la cuenta de administrador predeterminados como admin / admin y haga clic en Iniciar sesión En botón. Debería ver el panel predeterminado de SonarQube en la siguiente página:

¡Felicidades! ha instalado correctamente SonarQube en el servidor Ubuntu 18.04. Ahora puede realizar fácilmente revisiones automáticas y comprobar el estado de una aplicación con SonarQube.


Ubuntu
  1. Cómo instalar Magnolia CMS en Ubuntu 18.04 LTS

  2. Cómo instalar LimeSurvey en Ubuntu 18.04 LTS

  3. Cómo instalar Alfresco CMS en Ubuntu 18.04 LTS

  4. Cómo instalar CS-Cart en Ubuntu 18.04 LTS

  5. Cómo instalar Minecraft Server en Ubuntu 20.04 LTS

Cómo instalar Skencil en Ubuntu 20.04 LTS

Cómo instalar Go en Ubuntu 22.04 LTS

Cómo instalar Zulip en Ubuntu 16.04 LTS

Cómo instalar Go en Ubuntu 18.04 LTS

Cómo instalar Go en Ubuntu 20.04 LTS

Cómo instalar SonarQube en Ubuntu 20.04 LTS