GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare SonarQube su Ubuntu 18.04 LTS

SonarQube è una piattaforma open source per ispezionare continuamente la qualità del codice delle applicazioni. È scritto in linguaggio Java e supporta più database. Puoi ispezionare il codice e controllare lo stato di salute di un'applicazione per più di 20 linguaggi di programmazione tra cui Java, C, C++, C#, PHP e linguaggi web come JavaScript, HTML e CSS. SonarQube può analizzare il codice sorgente, trovare vulnerabilità di sicurezza, rilevare bug e mostrare il risultato su dashboard web-based. Puoi integrare facilmente SonarQube con Maven, Ant, Gradle, MSBuild, LDAP, Active Directory e GitHub.

In questo tutorial impareremo come installare SonarQube su un server Ubuntu 18.04 LTS (Bionic Beaver).

Requisiti

  • Un server che esegue Ubuntu 18.04.
  • Un utente non root con privilegi sudo.

Per iniziare

Prima di iniziare, dovrai aggiornare il tuo sistema con l'ultima versione. Puoi farlo eseguendo il seguente comando:

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

Una volta aggiornato il sistema, riavvia il sistema per applicare le modifiche.

Installa Java

SonarQube è scritto in linguaggio Java, quindi dovrai installare Java sul tuo sistema. Innanzitutto, aggiungi il repository Java con il seguente comando:

sudo add-apt-repository ppa:webupd8team/java

Quindi, aggiorna il repository e installa Java con il seguente comando:

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

Una volta installato Java, controlla la versione Java usando il seguente comando:

java -version

Uscita:

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)

Installa e configura PostgreSQL

Per impostazione predefinita, l'ultima versione di PostgreSQL non è disponibile nel repository predefinito di Ubuntu 18.04. Quindi dovrai aggiungere il repository PostgreSQL al tuo sistema.

Puoi farlo con il seguente 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 -

Quindi, aggiorna il repository e installa PostgreSQL con il seguente comando:

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

Una volta completata l'installazione, controlla lo stato di PostgreSQL con il seguente comando:

sudo systemctl status postgresql

Uscita:

? 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.

Quindi, passa all'utente postgres con il seguente comando:

su - postgres

Quindi, crea un utente sonar con il seguente comando:

createuser sonar

Quindi, passa alla shell di PostgreSQL con il seguente comando:

psql

Quindi, imposta la password per l'utente sonar e crea un database sonar con il seguente comando:

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

Quindi, exti dalla shell PostgreSQL:

\q

Installa e configura SonarQube

Innanzitutto, crea un utente per SonarQube con il seguente comando:

sudo adduser sonar

Quindi, scarica l'ultima versione di SonarQube con il seguente comando:

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

Una volta completato il download, decomprimere il file scaricato con il seguente comando:

unzip sonarqube-6.7.6.zip

Quindi, copia la directory estratta in /opt con il seguente comando:

sudo cp -r sonarqube-6.7.6 /opt/sonarqube

Quindi, dai la proprietà all'utente sonar con il seguente comando:

sudo chown -R sonar:sonar /opt/sonarqube

Successivamente, dovrai configurare SonarQube per l'esecuzione come utente sonar. Puoi farlo con il seguente comando:

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

Apporta le seguenti modifiche:

RUN_AS_USER=sonar

Salva e chiudi il file. Quindi, apri il file di configurazione predefinito di SonarQube e modifica le credenziali del database con quella che abbiamo creato in precedenza:

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

Apporta le seguenti modifiche:

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

Salva e chiudi il file, quando hai finito.

Crea file di servizio Systemd per SonarQube

Successivamente, dovrai creare un file di servizio systemd per gestire il servizio SonarQube. Puoi farlo con il seguente comando:

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

Aggiungi le seguenti righe:

[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

Salva e chiudi il file, quando hai finito. Quindi, avvia il servizio SonarQube e abilitalo all'avvio all'avvio con il seguente comando:

sudo systemctl start sonar
sudo systemctl enable sonar

Puoi controllare lo stato del servizio SonarQube con il seguente comando:

sudo systemctl status sonar

Uscita:

? 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.

Configura Apache per SonarQube

Per impostazione predefinita, SonarQube è in ascolto sulla porta 9000. Pertanto, dovrai installare e configurare Apache come proxy inverso per accedere a SonarQube utilizzando la porta 80.

Per farlo, installa Apache con il seguente comando:

sudo apt-get install apache2 -y

Quindi, abilita il modulo mod_proxy con il seguente comando:

sudo a2enmod proxy
sudo a2enmod proxy_http

Quindi, crea un file host virtuale Apache per SonarQube con il seguente comando:

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

Aggiungi le seguenti righe:

<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>

Sostituisci example.com con il tuo nome di dominio. Salva e chiudi il file. Quindi, abilita il file host virtuale SonarQube con il seguente comando:

sudo a2ensite sonar

Infine, riavvia il servizio Apache e SonarQube per applicare tutte le modifiche con il seguente comando:

sudo systemctl restart apache2
sudo systemctl restart sonar

Per impostazione predefinita, SonarQube memorizza i propri log nella directory /opt/sonarqube/logs. Puoi controllare il log di SonarQube con il seguente comando:

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

Uscita:

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

Puoi anche controllare il log web SonarQube usando il seguente comando:

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

Uscita:

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)

Accedi a SonarQube

SonarQube è ora installato e configurato. È ora di accedervi tramite browser web.

Apri il tuo browser web e digita l'URL http://example.com. Verrai reindirizzato alla seguente pagina:

Qui, fai clic sul Registro In pulsante. Dovresti vedere la seguente pagina:

Fornisci il nome utente e la password dell'account amministratore predefinito come amministratore/amministratore e fai clic sul Registro In pulsante. Dovresti vedere la dashboard predefinita di SonarQube nella pagina seguente:

Congratulazioni! hai installato con successo SonarQube sul server Ubuntu 18.04. Ora puoi facilmente eseguire revisioni automatiche e controllare lo stato di salute di un'applicazione utilizzando SonarQube.


Ubuntu
  1. Come installare Magnolia CMS su Ubuntu 18.04 LTS

  2. Come installare LimeSurvey su Ubuntu 18.04 LTS

  3. Come installare Alfresco CMS su Ubuntu 18.04 LTS

  4. Come installare CS-Cart su Ubuntu 18.04 LTS

  5. Come installare Minecraft Server su Ubuntu 20.04 LTS

Come installare Skencil su Ubuntu 20.04 LTS

Come installare Vai su Ubuntu 22.04 LTS

Come installare Zulip su Ubuntu 16.04 LTS

Come installare Vai su Ubuntu 18.04 LTS

Come installare Vai su Ubuntu 20.04 LTS

Come installare SonarQube su Ubuntu 20.04 LTS