SonarQube è una piattaforma di sistema di gestione della qualità gratuita e open source che può essere utilizzata per automatizzare l'ispezione del codice. Può analizzare i file di codice sorgente, calcolare una serie di metriche e mostrare il risultato sulla dashboard basata sul web. È scritto in linguaggio Java e supporta anche altri linguaggi come Perl, PHP e Ruby. Per impostazione predefinita, SonarQube supporta il database h2, ma non è scalabile. Quindi puoi integrare SonarQube con altri server di database come MSSQL, PostgreSQL, Oracle e MySQL. SOnarQube viene fornito con molti plugin, che integreranno automaticamente il codice sorgente dai repository. Consente agli sviluppatori di rilevare bug e vulnerabilità, nonché di ridurre gli odori del codice, in più di 20 lingue diverse. Puoi integrare facilmente SolarQube con gli ambienti di sviluppo Eclipse, Visual Studio e IntelliJ IDEA tramite i plug-in SonarLint.
In questo tutorial impareremo come installare SonarQube su un server Ubuntu 16.04.
Prerequisiti
- Un nuovo server Ubuntu 16.04 installato sul tuo sistema.
- Minimo 4 GB di RAM.
- Un utente non root con privilegi sudo.
Per iniziare
Prima di iniziare, si consiglia di aggiornare il sistema di base con l'ultima versione. Puoi farlo eseguendo il seguente comando:
sudo apt-get update -y
sudo apt-get upgrade -y
Dopo aver aggiornato il tuo sistema, puoi procedere con l'installazione di Java.
1 Installa Java
Sonarqube è un'applicazione basata su Java, quindi dovrai prima installare Java 8. Per impostazione predefinita Java 8 non è disponibile nel repository di Ubuntu. Puoi installare Java 8 aggiungendo il repository PPA webupd8team al tuo sistema.
Innanzitutto, aggiungi il PPA eseguendo il seguente comando:
sudo add-apt-repository ppa:webupd8team/java
Quindi, aggiorna il repository con il seguente comando:
sudo apt-get update -y
Una volta che il repository è aggiornato, puoi installare Java 8 eseguendo il seguente comando:
sudo apt-get install oracle-java8-installer -y
Dopo aver installato Java, puoi verificare la versione di Java con il seguente comando:
java -version
Dovresti vedere il seguente output:
Java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Una volta terminato, puoi procedere al passaggio successivo.
2 Installa Apache e MariaDB
Dovrai anche installare Apache e MariaDB, perché useremo Apache per proxy inverso e MariaDB come database. Puoi installarli entrambi eseguendo il seguente comando:
sudo apt-get install apache2 mariadb-server -y
Una volta completata l'installazione, avvia il servizio Apache e MariaDB e abilita l'avvio all'avvio con il seguente comando:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql
Una volta che Apache e MariaDB sono installati e funzionanti, puoi procedere al passaggio successivo.
3 Configura MariaDB
Per impostazione predefinita, l'installazione di MariaDB non è protetta, quindi sarà necessario proteggere l'installazione di MariaDB. Puoi farlo eseguendo lo script mysql_secure_installation:
sudo mysql_secure_installation
In questo processo, ti verrà chiesto di impostare la password di root, rimuovere gli utenti anonimi, impedire l'accesso come root in remoto e rimuovere il database di test. Rispondi a tutte le domande come mostrato di seguito:
Enter current password for root (enter for none): Change the root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Una volta che MariaDB è sicuro, accedi alla shell di MariaDB con il seguente comando:
mysql -u root -p
Immettere la password di root quando richiesto, quindi creare un database per SonarQube:
MariaDB [(none)]> CREATE DATABASE sonardb;
Quindi, crea un nuovo utente del database e fornisci i privilegi appropriati al tuo utente del database sul database che hai creato.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
Successivamente, applica le modifiche ai privilegi del database con il seguente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
Infine, esci dalla shell MariaDB con il seguente comando:
MariaDB [(none)]> \q
Una volta configurato il database, puoi procedere al passaggio successivo.
4 Installa SonarQube
Puoi scaricare l'ultima versione di SonarQube dal loro sito ufficiale. Puoi scaricarlo con il comando wget:
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
Una volta completato il download, decomprimere l'archivio scaricato utilizzando il seguente comando:
sudo unzip sonarqube-6.4.zip -d /opt
Quindi, rinomina la directory con il seguente comando:
sudo mv /opt/sonarqube-6.4 /opt/sonar
Successivamente, dovrai modificare il file di configurazione principale di SonarQube sonar.properties:
sudo nano /opt/sonar/conf/sonar.properties
Apporta le seguenti modifiche:
##Database User credentials: sonar.jdbc.username=sonar sonar.jdbc.password=yourpassword sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
Salva e chiudi il file, quindi crea un file di servizio systemd per SonarQube.
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/sonar/bin/linux-x86-64/sonar.sh start ExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stop User=root Group=root Restart=always [Install] WantedBy=multi-user.target
Salva il file al termine, quindi avvia il servizio SonarQube e abilitalo all'avvio all'avvio con il seguente comando:
sudo systemctl start sonar
sudo systemctl enable sonar
Il completamento del processo SonarQube richiede del tempo per la creazione del database e il popolamento dei dati. Puoi controllare lo stato di SonarQube con il seguente comando:
sudo systemctl status sonar
Puoi anche monitorare il processo esaminando il contenuto del file /opt/sonar/logs/sonar.log. Una volta terminato, puoi procedere al passaggio successivo.
5 Configura Apache come proxy inverso
Per impostazione predefinita, SonarQube è in ascolto sulla porta 9000. Qui utilizzeremo Apache come proxy inverso in modo che sia possibile accedere a SonarQube utilizzando la porta 80:
Innanzitutto, abilita il modulo proxy di Apache con il seguente comando:
sudo a2enmod proxy
sudo a2enmod proxy_http
Quindi, crea un nuovo file host virtuale per SonarQube con il seguente comando:
sudo nano /etc/apache2/sites-available/sonar.conf
Aggiungi le seguenti righe:
<VirtualHost *:80> ServerName 192.168.15.189 ServerAdmin [email protected] ProxyPreserveHost On ProxyPass / http://localhost:9000/ ProxyPassReverse / http://localhost:9000/ TransferLog /var/log/apache2/sonar_access.log ErrorLog /var/log/apache2/sonar_error.log </VirtualHost>
Salva e chiudi il file, quindi abilita il nuovo host virtuale eseguendo il comando seguente:
sudo a2ensite sonar
Infine, riavvia il servizio Apache con il seguente comando:
sudo systemctl restart apache2
6 Accesso all'interfaccia Web SonarQube
Tutti i componenti richiesti sono installati e configurati. Ora è il momento di accedere all'interfaccia web di SonarQube.
Prima di accedervi, dovrai consentire la porta 80 tramite il firewall UFW. Per impostazione predefinita UFW è disabilitato in Ubuntu, quindi dovrai prima abilitarlo. Puoi abilitarlo eseguendo il seguente comando:
sudo ufw enable
Una volta abilitato il firewall UFW, puoi consentire la porta 80 tramite UFW eseguendo il comando seguente:
sudo ufw allow 80/tcp
Ora puoi controllare lo stato del firewall UFW eseguendo il comando seguente:
sudo ufw status
Ora, apri il tuo browser web e vai all'URL http://192.168.15.189 , dovresti vedere la seguente schermata:
Ora, fai clic sul pulsante "Accedi", dovresti vedere la seguente schermata:
Accedi con il nome utente predefinito come "admin" e la password come "admin", dovresti vedere la seguente schermata:
Dopo aver effettuato l'accesso alla dashboard di SonarQube, fare clic sul pulsante Amministrazione> Sistema> Informazioni sul sistema. Dovresti vedere le informazioni di sistema correnti nella schermata seguente:
Quindi, fai clic sul pulsante Amministrazione> Sistema> Centro aggiornamenti, dovresti vedere tutti i plugin installati nella schermata seguente:
Qui puoi aggiornare i plug-in esistenti e anche installare i plug-in disponibili. Dopo aver installato o aggiornato i plug-in richiesti, dovrai fare clic sul pulsante "Riavvia" per riavviare il sistema per aggiornare le modifiche.
Conclusione
Nel tutorial sopra, abbiamo imparato a installare SonarQube su Ubuntu 16.04 e l'utilizzo di base di SonarQube. Ora puoi distribuirlo facilmente nell'ambiente di produzione. Sentiti libero di commentarmi se hai bisogno di aiuto.