SonarQube je platforma s otevřeným zdrojovým kódem, která neustále kontroluje kvalitu kódu aplikací. Je napsán v jazyce Java a podporuje více databází. Můžete zkontrolovat kód a zkontrolovat stav aplikace pro více než 20 programovacích jazyků včetně Java, C, C++, C#, PHP a webových jazyků, jako je JavaScript, HTML a CSS. SonarQube dokáže analyzovat zdrojový kód, najít bezpečnostní zranitelnosti, detekovat chyby a zobrazit výsledek na webovém panelu. SonarQube můžete snadno integrovat s Maven, Ant, Gradle, MSBuild, LDAP, Active Directory a GitHub.
V tomto tutoriálu se naučíme, jak nainstalovat SonarQube na server Ubuntu 18.04 LTS (Bionic Beaver).
Požadavky
- Server se systémem Ubuntu 18.04.
- Uživatel bez oprávnění root s právy sudo.
Začínáme
Než začnete, budete muset aktualizovat svůj 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
Jakmile je váš systém aktualizován, restartujte systém, aby se změny projevily.
Instalovat Javu
SonarQube je napsán v jazyce Java, takže budete muset nainstalovat Java do vašeho systému. Nejprve přidejte úložiště Java pomocí následujícího příkazu:
sudo add-apt-repository ppa:webupd8team/java
Dále aktualizujte úložiště a nainstalujte Javu pomocí následujícího příkazu:
sudo apt-get update -y
sudo apt-get install oracle-java8-installer -y
Jakmile je Java nainstalována, zkontrolujte verzi Java pomocí následujícího příkazu:
verze Java
Výstup:
openjdk verze "10.0.2" 2018-07-17 OpenJDK Runtime Environment (sestavení 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)OpenJDK 64-Bit Server VM (sestavení 10-Ubuntu+13 .18.04.3, smíšený režim)
Instalace a konfigurace PostgreSQL
Ve výchozím nastavení není nejnovější verze PostgreSQL dostupná ve výchozím úložišti Ubuntu 18.04. Budete tedy muset do svého systému přidat úložiště PostgreSQL.
Můžete to provést pomocí následujícího příkazu:
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 -
Dále aktualizujte úložiště a nainstalujte PostgreSQL pomocí následujícího příkazu:
sudo apt-get update -y
sudo apt-get install postgresql postgresql-contrib
Po dokončení instalace zkontrolujte stav PostgreSQL pomocí následujícího příkazu:
sudo systemctl status postgresql
Výstup:
? postgresql.service - PostgreSQL RDBMS Načteno:načteno (/lib/systemd/system/postgresql.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (ukončeno) od neděle 2018-12-02 08:49:29 UTC; Před 4h 30min Proces:1295 ExecStart=/bin/true (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:1295 (kód=ukončeno, stav=0/ÚSPĚCH) 2. prosince 08:49:29 ubuntu1804 systemd[1] :Spouštění PostgreSQL RDBMS... 2. prosince 08:49:29 ubuntu1804 systemd[1]:Spuštěno PostgreSQL RDBMS.
Dále se přepněte na uživatele postgres pomocí následujícího příkazu:
su - postgres
Dále vytvořte uživatele sonaru pomocí následujícího příkazu:
createuser sonar
Dále se přepněte do prostředí PostgreSQL pomocí následujícího příkazu:
psql
Dále nastavte heslo pro uživatele sonaru a vytvořte databázi sonaru pomocí následujícího příkazu:
ALTER USER sonar SE ŠIFROVANÝM heslem 'password';
VYTVOŘIT DATABÁZI sonar OWNER sonar;
Dále exti z prostředí PostgreSQL:
\q
Instalace a konfigurace SonarQube
Nejprve vytvořte uživatele pro SonarQube pomocí následujícího příkazu:
sudo adduser sonar
Dále si stáhněte nejnovější verzi SonarQube pomocí následujícího příkazu:
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.6.zip
Po dokončení stahování rozbalte stažený soubor pomocí následujícího příkazu:
rozbalte sonarqube-6.7.6.zip
Dále zkopírujte extrahovaný adresář do /opt pomocí následujícího příkazu:
sudo cp -r sonarqube-6.7.6 /opt/sonarqube
Dále předejte vlastnictví uživateli sonaru pomocí následujícího příkazu:
sudo chown -R sonar:sonar /opt/sonarqube
Dále budete muset nakonfigurovat SonarQube, aby běžel jako uživatel sonaru. Můžete to provést pomocí následujícího příkazu:
sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh
Proveďte následující změny:
RUN_AS_USER=sonar
Uložte a zavřete soubor. Poté otevřete výchozí konfigurační soubor SonarQube a upravte přihlašovací údaje databáze pomocí těch, které jsme vytvořili dříve:
sudo nano /opt/sonarqube/conf/sonar.properties
Proveďte následující změny:
sonar.jdbc.username=sonarsonar.jdbc.password=passwordsonar.jdbc.url=jdbc:postgresql://localhost/sonarsonar.web.host=127.0.0.1sonar.search.javaOpts=-Xms512m -Xmx512mPo dokončení uložte a zavřete soubor.
Vytvořit soubor Systemd Service pro SonarQube
Dále budete muset vytvořit soubor služby systemd pro správu služby SonarQube. Můžete to provést pomocí následujícího příkazu:
sudo nano /etc/systemd/system/sonar.servicePřidejte následující řádky:
[Unit]Description=SonarQube serviceAfter=syslog.target network.target[Service]Type=forkingExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh startExecStop=/opt/sonarqube/bin/linux -x86-64/sonar.sh stopUser=sonarGroup=sonarRestart=always[Install]WantedBy=multi-user.targetPo dokončení uložte a zavřete soubor. Poté spusťte službu SonarQube a povolte její spuštění při spouštění pomocí následujícího příkazu:
sudo systemctl spustit sonar
sudo systemctl povolit sonarStav služby SonarQube můžete zkontrolovat pomocí následujícího příkazu:
sudo systemctl status sonarVýstup:
? sonar.service - služba SonarQube Načteno:načteno (/etc/systemd/system/sonar.service; zakázáno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (běží) od neděle 2018-12-02 13:55:34 UTC; Před 2min 52s Proces:2339 ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start (kód=ukončeno, stav=0/ÚSPĚCH) Hlavní PID:2396 (obal) Úkoly: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 -2. prosince 13:55:33 ubuntu1804 systemd[1]:Spouštění služby SonarQube... 2. prosince 13:55:33 ubuntu1804 sonar.sh[2339]:Spouštění SonarQube...Prosinec 02 13:55:34 ubuntu1804 sonar.sh[2339]:Spuštěno SonarQube.Dec 02 13:55:34 Spuštění systému SonarQubed[1]804 .Konfigurace Apache pro SonarQube
Ve výchozím nastavení SonarQube naslouchá na portu 9000. Budete tedy muset nainstalovat a nakonfigurovat Apache jako reverzní proxy pro přístup k SonarQube pomocí portu 80.
Chcete-li tak učinit, nainstalujte Apache pomocí následujícího příkazu:
sudo apt-get install apache2 -yDále povolte modul mod_proxy pomocí následujícího příkazu:
sudo a2enmod proxy
sudo a2enmod proxy_httpDále vytvořte soubor virtuálního hostitele Apache pro SonarQube pomocí následujícího příkazu:
sudo nano /etc/apache2/sites-available/sonar.confPřidejte následující řádky:
ServerName example.com ServerAdmin [chráněno e-mailem] 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 Nahraďte example.com svým vlastním názvem domény. Uložte a zavřete soubor. Poté povolte soubor virtuálního hostitele SonarQube pomocí následujícího příkazu:
sonar sudo a2ensiteNakonec restartujte Apache a službu SonarQube, abyste použili všechny změny pomocí následujícího příkazu:
sudo systemctl restart apache2
sudo systemctl restart sonarSonarQube standardně ukládá své protokoly do adresáře /opt/sonarqube/logs. Protokol SonarQube můžete zkontrolovat pomocí následujícího příkazu:
sudo tail -f /opt/sonarqube/logs/sonar.logVýstup:
Spuštění JVM...Wrapper (verze 3.2.3) http://wrapper.tanukisoftware.org Copyright 1999-2006 Tanuki Software, Inc. Všechna práva vyhrazena.2018.12.02 13:55:43 INFO aplikace[] [o.s.a.AppFileSystem] Čištění nebo vytváření dočasného adresáře /opt/sonarqube/temp2018.12.02 13:55:44 INFO aplikace[][o.s.a.es.EsSettings] Elasticsearch naslouchající na /127.0.0.1:90012028.145. [][o.s.a.p.ProcessLauncherImpl] Proces spuštění[[key='es', ipcIndex=1, logFilenamePrefix=es]] z [/opt/sonarqube/elasticsearch]:/opt/sonarqube/elasticsearch/bin/elasticsearch -Epath.conf=/opt/sonarqube/temp/conf/es2018.12.02 13:55:45 INFO aplikace[][o.s.a.SchedulerImpl] Čekání na spuštění Elasticsearch2018.12.02 13:55:48 Modul INFO[][o.e.p.] nahráno 12.02 13:56:34 INFO aplikace[][o.s.a.p.ProcessLauncherIm pl] Spusťte proces[[key='web', ipcIndex=2, logFilenamePrefix=web]] z [/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-process420500314195865484propertiesWebový protokol SonarQube můžete také zkontrolovat pomocí následujícího příkazu:
sudo tail -f /opt/sonarqube/logs/web.logVýstup:
2018.12.02 13:57:03 Info Web [] [O.S.S.ServerpluginRepository] Deploy Plugin Sonarjava / 4.15.0.12310 / 572454B93016EC73A53FE0E07B2FFDC3012.02 13:57.S. / 741861a29e5f9a26c6c99c06268facb6c4f4a8822018.12.02 13:57:03 INFO web [] [o.s.s.p.ServerPluginRepository] Deploy plugin SonarPython / 1.8.0.1496 / 3fe3bc4d0273a5721ea2fb368dc45b1bb82fede32018.12.02 13:57:03 INFO webovém [] [] o.s.s.p.ServerPluginRepository Deploy pluginů SonarQube ::Plugins ::SCM ::Git / 1.3.0.869 / 4da53e3f9e55f4f2e5796625cb0c5768ed1520792018.12.02 13:57:03 INFO web [] [o.s.s.p.ServerPluginRepository] Deploy plugin SonarQube ::Plugins ::SCM ::SVN / 1.6.0.860 / 2111fdbd1dddda4ad6d4ed6486fd0b18c1010d3b2018.12.02 13:57:03 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin SonarTS / 1.1.0.1079 / 042c9e65239a47d92d305f9767f730b3cc1e5ed32018.12.02 13:57:03 plugins.Web[Plugino.03.web. / 1.4.3.1027 / 39588245CECF538BB27BE496FF303B0143D20B2018.12.02 13:57:07 Info Web [] [O.S.S.D.M.C.PostsCarShAndler] OVERIFIKACE] pattern=UrlPattern{inclusions=[/api/system/migrate_db/*, ...], výjimky=[/api/properties*, ...]}]2018.12.02 13:57:09 INFO web[][o.s.s.a. EmbeddedTomcat] HTTP konektor povolen na portu 90002018.12.02 13:57:16 INFO web[][o.s.s.p.UpdateCenterClient] Centrum aktualizací:https://update.sonarsource.org/update-center.properties (bez proxy)
Přístup k SonarQube
SonarQube je nyní nainstalován a nakonfigurován. Je čas se k němu dostat přes webový prohlížeč.
Otevřete webový prohlížeč a zadejte adresu URL http://example.com. Budete přesměrováni na následující stránku:
Zde klikněte na Protokol V knoflík. Měli byste vidět následující stránku:
Zadejte výchozí uživatelské jméno a heslo účtu správce jako admin / admin a klikněte na Protokol V knoflík. Výchozí řídicí panel SonarQube byste měli vidět na následující stránce:
Gratulujeme! úspěšně jste nainstalovali SonarQube na server Ubuntu 18.04. Nyní můžete snadno provádět automatické kontroly a kontrolovat stav aplikace pomocí SonarQube.