SonarQube este un instrument open source pentru dezvoltarea sistemului de calitate. Este scris în Java și acceptă mai multe baze de date. Oferă capabilități de a inspecta continuu codul, de a arăta starea de sănătate a unei aplicații și de a evidenția problemele recent introduse. Conține analizoare de cod care sunt echipate pentru a detecta probleme complicate. De asemenea, se integrează ușor cu DevOps.
În acest tutorial, vom instala cea mai recentă versiune a SonarQube pe CentOS 7.
Notă: Acest document a fost actualizat de la publicarea inițială. Consultați secțiunea „Errata” din notele de subsol.
Cerințe preliminare
- O instanță a serverului VOSTR 64-bit CentOS 7 cu cel puțin 2 GB RAM.
- Un utilizator sudo .
Înainte de a instala pachetele pe instanța serverului CentOS, se recomandă actualizarea sistemului. Conectați-vă cu utilizatorul sudo și executați următoarele comenzi pentru a actualiza sistemul.
sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now
După ce sistemul a terminat repornirea, conectați-vă din nou ca utilizator sudo și treceți la pasul următor.
Pasul 2: Instalează Java
Descărcați pachetul Oracle SE JDK RPM tastând:
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"
Instalați pachetul descărcat tastând:
sudo yum -y localinstall jdk-8u131-linux-x64.rpm
Acum puteți verifica versiunea Java tastând:
java -version
Pasul 3: Instalați și configurați PostgreSQL
Instalați depozitul PostgreSQL tastând:
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Instalați serverul de baze de date PostgreSQL rulând:
sudo yum -y install postgresql96-server postgresql96-contrib
Inițializați baza de date:
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Editați opțiunea /var/lib/pgsql/9.6/data/pg_hba.confpentru a activa autentificarea bazată pe MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Găsiți următoarele linii și treceți peerla trustși idnetla 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
Odată actualizată, configurația ar trebui să arate ca cea prezentată mai jos.
# 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
Porniți serverul PostgreSQL și permiteți-l să pornească automat la momentul de pornire, rulând:
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Modificați parola pentru utilizatorul implicit PostgreSQL.
sudo passwd postgres
Comutați la postgresutilizator.
su - postgres
Creați un utilizator nou tastând:
createuser sonar
Comutați la shell-ul PostgreSQL.
psql
Setați o parolă pentru utilizatorul nou creat pentru baza de date SonarQube.
ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';
Creați o nouă bază de date pentru baza de date PostgreSQL rulând:
CREATE DATABASE sonar OWNER sonar;
Ieșiți din psqlcoajă:
\q
Comutați înapoi la utilizatorul sudo rulând exitcomanda.
Descărcați arhiva fișierelor de instalare SonarQube.
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip
Puteți căuta întotdeauna linkul la cea mai recentă versiune a aplicației pe pagina de descărcare SonarQube .
Instalați decuplați rulând:
sudo yum -y install unzip
Decuplați arhiva folosind următoarea comandă.
sudo unzip sonarqube-6.4.zip -d /opt
Redenumiți directorul:
sudo mv /opt/sonarqube-6.4 /opt/sonarqube
Deschide fișierul de configurare SonarQube folosind editorul de text preferat.
sudo nano /opt/sonarqube/conf/sonar.properties
Găsiți următoarele rânduri.
#sonar.jdbc.username=
#sonar.jdbc.password=
Decomandați și furnizați numele de utilizator și parola PostgreSQL din baza de date creată anterior. Ar trebui să arate astfel:
sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
În continuare, găsiți:
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Deconectați linia, salvați fișierul și ieșiți din editor.
SonarQube poate fi pornit direct folosind scriptul de pornire furnizat în pachetul de instalare. Ca și comoditate, ar trebui să configurați un fișier unitate Systemd pentru SonarQube.
sudo nano /etc/systemd/system/sonar.service
Populați fișierul cu:
[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
Porniți aplicația rulând:
sudo systemctl start sonar
Activați serviciul SonarQube pentru a porni automat la momentul de pornire.
sudo systemctl enable sonar
Pentru a verifica dacă serviciul este în funcțiune, executați:
sudo systemctl status sonar
În mod implicit, SonarQube ascultă localhost în portul 9000. În acest tutorial, vom folosi Apache ca proxy invers, astfel încât aplicația să poată fi accesată prin portul HTTP standard. Instalați serverul web Apache rulând:
sudo yum -y install httpd
Creați o nouă gazdă virtuală.
sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf
Populați fișierul cu:
<VirtualHost *:80>
ServerName sonar.yourdomain.com
ServerAdmin [email protected]
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>
Porniți Apache și permiteți-l să pornească automat la momentul de pornire:
sudo systemctl start httpd
sudo systemctl enable httpd
Permiteți portul HTTP necesar prin firewall-ul sistemului.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Porniți serviciul SonarQube:
sudo systemctl start sonar
De asemenea, va trebui să dezactivați SELinux:
sudo setenforce 0
SonarQube este instalat pe serverul dvs., accesați tabloul de bord la următoarea adresă.
http://sonar.yourdomain.com
Conectați-vă folosind contul inițial de administrator adminși admin. Acum puteți utiliza SonarQube pentru a analiza continuu codul pe care l-ați scris.
Erată
Dacă instalați SonarQube 7.1 (sau mai nou), faceți modificările de mai jos, deoarece versiunile mai noi ale Elasticsearch nu pot fi rulate ca utilizator root.
- Permisiunile de actualizare:
chown -R sonar:sonar /opt/sonarqube
- Modifică
/opt/sonarqube/bin/linux-x86-64/sonar.sh, schimbă-te #RUNASpentru a fi " sonar".
- Modificați
/etc/systemd/system/sonar.service, schimbați grupul de utilizatori pentru a fi " sonar".