SonarQube è uno strumento open source per lo sviluppo di sistemi di qualità. È scritto in Java e supporta più database. Offre funzionalità per ispezionare continuamente il codice, mostrare lo stato di un'applicazione ed evidenziare i problemi appena introdotti. Contiene analizzatori di codice che sono attrezzati per rilevare problemi complessi. Si integra facilmente anche con DevOps.
In questo tutorial, installeremo l'ultima versione di SonarQube su CentOS 7.
Nota: questo documento è stato aggiornato dalla sua pubblicazione originale. Vedi la sezione "Errata" nelle note a piè di pagina.
Prerequisiti
- Un'istanza del server CentOS 7 a 64 bit Vultr con almeno 2 GB di RAM.
- Un utente sudo .
Prima di installare eventuali pacchetti sull'istanza del server CentOS, si consiglia di aggiornare il sistema. Accedi usando l'utente sudo ed esegui i seguenti comandi per aggiornare il sistema.
sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now
Una volta terminato il riavvio del sistema, accedere nuovamente come utente sudo e procedere al passaggio successivo.
Passaggio 2: installare Java
Scarica il pacchetto Oracle SE JDK RPM digitando:
wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"
Installa il pacchetto scaricato digitando:
sudo yum -y localinstall jdk-8u131-linux-x64.rpm
Ora puoi controllare la versione di Java digitando:
java -version
Passaggio 3: installare e configurare PostgreSQL
Installa il repository PostgreSQL digitando:
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Installa il server di database PostgreSQL eseguendo:
sudo yum -y install postgresql96-server postgresql96-contrib
Inizializza il database:
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Modifica /var/lib/pgsql/9.6/data/pg_hba.confper abilitare l'autenticazione basata su MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Trova le seguenti righe e modifica peerin truste idnetin md5.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Una volta aggiornata, la configurazione dovrebbe apparire come quella mostrata di seguito.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Avviare il server PostgreSQL e abilitarlo ad avviarsi automaticamente all'avvio eseguendo:
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Cambia la password per l'utente PostgreSQL predefinito.
sudo passwd postgres
Passa postgresall'utente.
su - postgres
Crea un nuovo utente digitando:
createuser sonar
Passa alla shell PostgreSQL.
psql
Impostare una password per l'utente appena creato per il database SonarQube.
ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';
Crea un nuovo database per il database PostgreSQL eseguendo:
CREATE DATABASE sonar OWNER sonar;
Esci dalla psqlshell:
\q
Torna all'utente sudo eseguendo il exitcomando.
Scarica l'archivio dei file di installazione di SonarQube.
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip
Puoi sempre cercare il link all'ultima versione dell'applicazione nella pagina di download di SonarQube .
Installa decomprimere eseguendo:
sudo yum -y install unzip
Decomprimi l'archivio usando il seguente comando.
sudo unzip sonarqube-6.4.zip -d /opt
Rinomina la directory:
sudo mv /opt/sonarqube-6.4 /opt/sonarqube
Apri il file di configurazione SonarQube usando il tuo editor di testo preferito.
sudo nano /opt/sonarqube/conf/sonar.properties
Trova le seguenti righe.
#sonar.jdbc.username=
#sonar.jdbc.password=
Rimuovi il commento e fornisci il nome utente e la password PostgreSQL del database che abbiamo creato in precedenza. Dovrebbe apparire come:
sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
Quindi, trova:
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Rimuovi il commento dalla riga, salva il file ed esce dall'editor.
SonarQube può essere avviato direttamente utilizzando lo script di avvio fornito nel pacchetto di installazione. Per comodità, è necessario impostare un file di unità Systemd per SonarQube.
sudo nano /etc/systemd/system/sonar.service
Popolare il file con:
[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=root
Group=root
Restart=always
[Install]
WantedBy=multi-user.target
Avviare l'applicazione eseguendo:
sudo systemctl start sonar
Abilitare il servizio SonarQube per l'avvio automatico all'avvio.
sudo systemctl enable sonar
Per verificare se il servizio è in esecuzione, eseguire:
sudo systemctl status sonar
Per impostazione predefinita, SonarQube ascolta localhost sulla porta 9000. In questa esercitazione, useremo Apache come proxy inverso in modo che sia possibile accedere all'applicazione tramite la porta HTTP standard. Installa il web server Apache eseguendo:
sudo yum -y install httpd
Crea un nuovo host virtuale.
sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf
Popolare il file con:
<VirtualHost *:80>
ServerName sonar.yourdomain.com
ServerAdmin me@yourdomain.com
ProxyPreserveHost On
ProxyPass / http://localhost:9000/
ProxyPassReverse / http://localhost:9000/
TransferLog /var/log/httpd/sonar.yourdomain.com_access.log
ErrorLog /var/log/httpd/sonar.yourdomain.com_error.log
</VirtualHost>
Avvia Apache e abilita l'avvio automatico all'avvio:
sudo systemctl start httpd
sudo systemctl enable httpd
Consentire la porta HTTP richiesta attraverso il firewall di sistema.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Avviare il servizio SonarQube:
sudo systemctl start sonar
Dovrai anche disabilitare SELinux:
sudo setenforce 0
SonarQube è installato sul tuo server, accedi alla dashboard al seguente indirizzo.
http://sonar.yourdomain.com
Accedere utilizzando l'account amministratore iniziale admine admin. Ora puoi usare SonarQube per analizzare continuamente il codice che hai scritto.
Errata
Se si installa SonarQube 7.1 (o più recente), apportare le modifiche seguenti perché le versioni più recenti di Elasticsearch non possono essere eseguite come utente root.
- Autorizzazioni di aggiornamento:
chown -R sonar:sonar /opt/sonarqube
- Modifica
/opt/sonarqube/bin/linux-x86-64/sonar.sh, cambia #RUNASin " sonar".
- Modifica
/etc/systemd/system/sonar.service, cambia il gruppo di utenti in " sonar".