SonarQube je bezplatná a open source platforma systému řízení kvality, kterou lze použít k automatizaci kontroly kódu. Dokáže analyzovat soubory zdrojového kódu, vypočítat sadu metrik a zobrazit výsledek na webovém panelu. Je napsán v jazyce Java a podporuje také další jazyky, jako je Perl, PHP a Ruby. Ve výchozím nastavení SonarQube podporuje databázi h2, ale není škálovatelná. SonarQube tedy můžete integrovat s jinými databázovými servery, jako jsou MSSQL, PostgreSQL, Oracle a MySQL. SOnarQube přichází se spoustou pluginů, které automaticky integrují zdrojový kód z repozitářů. Umožňuje vývojářům detekovat chyby a zranitelnosti a také snížit pachy kódu ve více než 20 různých jazycích. SolarQube můžete snadno integrovat s vývojovými prostředími Eclipse, Visual Studio a IntelliJ IDEA prostřednictvím zásuvných modulů SonarLint.
V tomto tutoriálu se naučíme, jak nainstalovat SonarQube na server Ubuntu 16.04.
Předpoklady
- Nová instalace serveru Ubuntu 16.04 do vašeho systému.
- Minimálně 4 GB RAM.
- Uživatel bez oprávnění root s právy sudo.
Začínáme
Před spuštěním se doporučuje aktualizovat váš základní systém na nejnovější verzi. Můžete to provést spuštěním následujícího příkazu:
sudo apt-get update -y
sudo apt-get upgrade -y
Po aktualizaci systému můžete pokračovat v instalaci Javy.
1 Nainstalujte Javu
Sonarqube je aplikace založená na Java, takže budete muset nejprve nainstalovat Java 8. Ve výchozím nastavení není Java 8 k dispozici v úložišti Ubuntu. Java 8 můžete nainstalovat přidáním úložiště webupd8team PPA do vašeho systému.
Nejprve přidejte PPA spuštěním následujícího příkazu:
sudo add-apt-repository ppa:webupd8team/java
Dále aktualizujte úložiště pomocí následujícího příkazu:
sudo apt-get update -y
Jakmile bude úložiště aktuální, můžete nainstalovat Java 8 spuštěním následujícího příkazu:
sudo apt-get install oracle-java8-installer -y
Po instalaci Javy můžete zkontrolovat verzi Javy pomocí následujícího příkazu:
java -version
Měli byste vidět následující výstup:
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)
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
2 Instalace Apache a MariaDB
Budete také muset nainstalovat Apache a MariaDB, protože budeme používat Apache pro reverzní proxy a MariaDB jako databázi. Oba je můžete nainstalovat spuštěním následujícího příkazu:
sudo apt-get install apache2 mariadb-server -y
Po dokončení instalace spusťte službu Apache a MariaDB a povolte jim spuštění při spouštění pomocí následujícího příkazu:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql
Jakmile jsou Apache a MariaDB nainstalovány a fungují, můžete přejít k dalšímu kroku.
3 Konfigurace MariaDB
Ve výchozím nastavení není instalace MariaDB zabezpečena, takže budete muset instalaci MariaDB zabezpečit. Můžete to provést spuštěním skriptu mysql_secure_installation:
sudo mysql_secure_installation
V tomto procesu budete požádáni o nastavení hesla root, odstranění anonymních uživatelů, zakázání vzdáleného přihlášení root a odstranění testovací databáze. Odpovězte na všechny otázky, jak je uvedeno níže:
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
Jakmile je MariaDB zabezpečena, přihlaste se do prostředí MariaDB pomocí následujícího příkazu:
mysql -u root -p
Po zobrazení výzvy zadejte heslo uživatele root a poté vytvořte databázi pro SonarQube:
MariaDB [(none)]> CREATE DATABASE sonardb;
Dále vytvořte nového uživatele databáze a poskytněte uživateli databáze příslušná oprávnění k databázi, kterou jste vytvořili.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
Dále použijte změny oprávnění databáze pomocí následujícího příkazu:
MariaDB [(none)]> FLUSH PRIVILEGES;
Nakonec ukončete prostředí MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> \q
Jakmile je databáze nakonfigurována, můžete přejít k dalšímu kroku.
4 Nainstalujte SonarQube
Nejnovější verzi SonarQube si můžete stáhnout z jejich oficiálních stránek. Můžete si jej stáhnout pomocí příkazu wget:
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
Po dokončení stahování rozbalte stažený archiv pomocí následujícího příkazu:
sudo unzip sonarqube-6.4.zip -d /opt
Dále přejmenujte adresář pomocí následujícího příkazu:
sudo mv /opt/sonarqube-6.4 /opt/sonar
Dále budete muset upravit hlavní konfigurační soubor SonarQube sonar.properties:
sudo nano /opt/sonar/conf/sonar.properties
Proveďte následující změny:
##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
Uložte a zavřete soubor a poté vytvořte soubor systémové služby pro SonarQube.
sudo nano /etc/systemd/system/sonar.service
Přidejte následující řádky:
[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
Až budete hotovi, uložte soubor, poté spusťte službu SonarQube a povolte její spuštění při startu pomocí následujícího příkazu:
sudo systemctl start sonar
sudo systemctl enable sonar
Proces SonarQube trvá nějakou dobu, než se vytvoří databáze a naplní data. Stav SonarQube můžete zkontrolovat pomocí následujícího příkazu:
sudo systemctl status sonar
Proces můžete také sledovat tak, že se podíváte do obsahu souboru /opt/sonar/logs/sonar.log. Jakmile budete hotovi, můžete přejít k dalšímu kroku.
5 Konfigurace Apache jako reverzního proxy
Ve výchozím nastavení SonarQube naslouchá na portu 9000. Zde použijeme apache jako reverzní proxy, takže SonarQube lze přistupovat pomocí portu 80:
Nejprve povolte modul proxy Apache pomocí následujícího příkazu:
sudo a2enmod proxy
sudo a2enmod proxy_http
Dále vytvořte nový soubor virtuálního hostitele pro SonarQube pomocí následujícího příkazu:
sudo nano /etc/apache2/sites-available/sonar.conf
Přidejte následující řádky:
<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>
Uložte a zavřete soubor a poté povolte nového virtuálního hostitele spuštěním následujícího příkazu:
sudo a2ensite sonar
Nakonec restartujte službu apache pomocí následujícího příkazu:
sudo systemctl restart apache2
6 Přístup k webovému rozhraní SonarQube
Všechny požadované komponenty jsou nainstalovány a nakonfigurovány. Nyní je čas vstoupit do webového rozhraní SonarQube.
Před přístupem k němu budete muset povolit port 80 přes firewall UFW. Ve výchozím nastavení je UFW v Ubuntu zakázáno, takže jej budete muset nejprve povolit. Můžete jej povolit spuštěním následujícího příkazu:
sudo ufw enable
Jakmile je UFW firewall povolen, můžete povolit port 80 přes UFW spuštěním následujícího příkazu:
sudo ufw allow 80/tcp
Nyní můžete zkontrolovat stav UFW firewallu spuštěním následujícího příkazu:
sudo ufw status
Nyní otevřete webový prohlížeč a přejděte na adresu URL http://192.168.15.189 , měli byste vidět následující obrazovku:
Nyní klikněte na tlačítko "Přihlásit se", měli byste vidět následující obrazovku:
Přihlaste se pomocí výchozího uživatelského jména jako „admin“ a hesla jako „admin“, měli byste vidět následující obrazovku:
Jakmile se přihlásíte k řídicímu panelu SonarQube, klikněte na tlačítko Správa> Systém> Systémové informace. Na následující obrazovce byste měli vidět aktuální systémové informace:
Dále klikněte na tlačítko Správa> Systém> Centrum aktualizací, na následující obrazovce byste měli vidět všechny nainstalované pluginy:
Zde můžete aktualizovat stávající pluginy a také nainstalovat dostupné pluginy. Po instalaci nebo aktualizaci požadovaných zásuvných modulů budete muset kliknout na tlačítko "Restartovat" a restartovat systém, aby se změny aktualizovaly.
Závěr
Ve výše uvedeném tutoriálu jsme se naučili nainstalovat SonarQube na Ubuntu 16.04 a základní použití SonarQube. Nyní jej můžete snadno nasadit v produkčním prostředí. Neváhejte a napište mi, pokud budete potřebovat pomoc.