Wie man SonarQube auf Ubuntu 16.04 installiert

SonarQube ist eine kostenlose und Open-Source-Qualitätsmanagementsystemplattform, die zur Automatisierung der Code-Inspektion verwendet werden kann. Es kann Quellcode-Dateien analysieren, einen Satz von Metriken berechnen und das Ergebnis auf dem webbasierten Dashboard anzeigen. Es ist in Java geschrieben und unterstützt auch andere Sprachen wie Perl, PHP und Ruby. Standardmäßig unterstützt SonarQube h2-Datenbanken, ist aber nicht skalierbar. So können Sie SonarQube mit anderen Datenbankservern wie MSSQL, PostgreSQL, Oracle und MySQL integrieren. SOnarQube enthält viele Plugins, die den Quellcode automatisch aus den Repositories integrieren. Es ermöglicht Entwicklern, Fehler und Schwachstellen zu erkennen und Codegerüche in mehr als 20 verschiedenen Sprachen zu reduzieren. Sie können SolarQube mit Eclipse, Visual Studio und IntelliJ IDEA Entwicklungsumgebungen über die SonarLint Plugins einfach integrieren.

In diesem Tutorial erfahren wir, wie man SonarQube auf einem Ubuntu 16.04 Server installiert.

Voraussetzungen

  • Ein neuer Ubuntu 16.04 Server wird auf Ihrem System installiert.
  • Mindestens 4 GB RAM.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Vor dem Start wird empfohlen, Ihr Basissystem auf die neueste Version zu aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:

sudo apt-get update -y
sudo apt-get upgrade -y

Nach der Aktualisierung Ihres Systems können Sie mit der Installation von Java fortfahren.

1 Java installieren

Sonarqube ist eine Java-basierte Anwendung, daher müssen Sie Java 8 zuerst installieren. Standardmäßig ist Java 8 nicht im Ubuntu-Repository verfügbar. Sie können Java 8 installieren, indem Sie das webupd8team PPA-Repository zu Ihrem System hinzufügen.

Fügen Sie zunächst das PPA hinzu, indem Sie den folgenden Befehl ausführen:

sudo add-apt-repository ppa:webupd8team/java

Aktualisieren Sie anschließend das Repository mit dem folgenden Befehl:

sudo apt-get update -y

Sobald das Repository auf dem neuesten Stand ist, können Sie Java 8 installieren, indem Sie den folgenden Befehl ausführen:

sudo apt-get install oracle-java8-installer -y

Nach der Installation von Java können Sie die Version von Java mit dem folgenden Befehl überprüfen:

java -version

Sie sollten die folgende Ausgabe sehen:

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)

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

2 Apache und MariaDB installieren

Sie müssen auch Apache und MariaDB installieren, da wir Apache für Reverse Proxy und MariaDB als Datenbank verwenden werden. Sie können beide installieren, indem Sie den folgenden Befehl ausführen:

sudo apt-get install apache2 mariadb-server -y

Sobald die Installation abgeschlossen ist, starten Sie den Apache und MariaDB-Dienst und ermöglichen Sie ihm, beim Booten mit dem folgenden Befehl zu starten:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

Sobald Apache und MariaDB installiert sind und funktionieren, können Sie mit dem nächsten Schritt fortfahren.

3 MariaDB konfigurieren

Standardmäßig ist die MariaDB-Installation nicht gesichert, daher müssen Sie die MariaDB-Installation sichern. Sie können dies tun, indem Sie das mysql_secure_installationsskript ausführen:

sudo mysql_secure_installation

In diesem Prozess werden Sie aufgefordert, das Root-Passwort festzulegen, anonyme Benutzer zu entfernen, die Remote-Anmeldung von Root zu verbieten und die Testdatenbank zu entfernen. Beantworten Sie alle Fragen wie unten gezeigt:

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

Sobald MariaDB gesichert ist, melden Sie sich mit folgendem Befehl an der MariaDB-Shell an:

mysql -u root -p

Geben Sie bei der Eingabeaufforderung Ihr Root-Passwort ein und erstellen Sie dann eine Datenbank für SonarQube:

MariaDB [(none)]> CREATE DATABASE sonardb;

Erstellen Sie anschließend einen neuen Datenbankbenutzer und stellen Sie Ihrem Datenbankbenutzer die entsprechenden Berechtigungen für die von Ihnen erstellte Datenbank zur Verfügung.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';

Als nächstes wenden Sie die Änderungen an den Datenbankberechtigungen mit dem folgenden Befehl an:

MariaDB [(none)]> FLUSH PRIVILEGES;

Beenden Sie schließlich die MariaDB-Shell mit dem folgenden Befehl:

MariaDB [(none)]> \q

Sobald die Datenbank konfiguriert ist, können Sie mit dem nächsten Schritt fortfahren.

4 SonarQube installieren

Sie können die neueste Version des SonarQube von der offiziellen Website herunterladen. Du kannst es mit dem Befehl wget herunterladen:

wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip

Wenn der Download abgeschlossen ist, entpacken Sie das heruntergeladene Archiv mit dem folgenden Befehl:

sudo unzip sonarqube-6.4.zip -d /opt

Als nächstes benennen Sie das Verzeichnis mit dem folgenden Befehl um:

sudo mv /opt/sonarqube-6.4 /opt/sonar

Als nächstes müssen Sie die SonarQube-Hauptkonfigurationsdatei sonar.properties ändern:

sudo nano /opt/sonar/conf/sonar.properties

Nehmen Sie die folgenden Änderungen vor:

##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

Speichern und schließen Sie die Datei und erstellen Sie dann eine Systemdatei für SonarQube.

sudo nano /etc/systemd/system/sonar.service

Füge die folgenden Zeilen hinzu:

[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

Speichern Sie die Datei, wenn Sie fertig sind, und starten Sie dann den SonarQube-Dienst, damit er beim Booten mit dem folgenden Befehl gestartet werden kann:

sudo systemctl start sonar
sudo systemctl enable sonar

Der SonarQube-Prozess benötigt einige Zeit, um die Erstellung der Datenbank und das Füllen der Daten abzuschließen. Sie können den Status von SonarQube mit dem folgenden Befehl überprüfen:

sudo systemctl status sonar

Sie können den Prozess auch überwachen, indem Sie sich den Inhalt der Datei /opt/sonar/logs/sonar.log ansehen. Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

5 Apache als Reverse Proxy konfigurieren

Standardmäßig hört SonarQube auf Port 9000. Hier werden wir Apache als Reverse-Proxy verwenden, so dass SonarQube über Port 80 angesprochen werden kann:

Aktivieren Sie zunächst das Apache-Proxy-Modul mit dem folgenden Befehl:

sudo a2enmod proxy
sudo a2enmod proxy_http

Erstellen Sie anschließend eine neue virtuelle Hostdatei für SonarQube mit dem folgenden Befehl:

sudo nano /etc/apache2/sites-available/sonar.conf

Füge die folgenden Zeilen hinzu:

<VirtualHost *:80>
    ServerName 192.168.15.189
    ServerAdmin admin@example.com
    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>

Speichern und schließen Sie die Datei und aktivieren Sie dann einen neuen virtuellen Host, indem Sie den folgenden Befehl ausführen:

sudo a2ensite sonar

Starten Sie schließlich den Apache-Dienst mit dem folgenden Befehl neu:

sudo systemctl restart apache2

6 Zugriff auf die SonarQube Weboberfläche

Alle erforderlichen Komponenten werden installiert und konfiguriert. Jetzt ist es an der Zeit, auf die SonarQube-Weboberfläche zuzugreifen.

Bevor Sie darauf zugreifen können, müssen Sie Port 80 durch die UFW-Firewall zulassen. Standardmäßig ist UFW in Ubuntu deaktiviert, daher müssen Sie es zuerst aktivieren. Sie können es aktivieren, indem Sie den folgenden Befehl ausführen:

sudo ufw enable

Sobald die UFW-Firewall aktiviert ist, können Sie Port 80 durch UFW zulassen, indem Sie den folgenden Befehl ausführen:

sudo ufw allow 80/tcp

Sie können nun den Status der UFW-Firewall überprüfen, indem Sie den folgenden Befehl ausführen:

sudo ufw status

Öffnen Sie nun Ihren Webbrowser und navigieren Sie zur URL http://192.168.15.189, Sie sollten den folgenden Bildschirm sehen:

SonarQube Dashboard

Klicken Sie nun auf die Schaltfläche „Anmelden“, Sie sollten den folgenden Bildschirm sehen:

Login

Melden Sie sich mit dem Standardbenutzernamen als „admin“ und dem Passwort als „admin“ an, Sie sollten den folgenden Bildschirm sehen:

SnarQube

Nachdem Sie sich im SonarQube Dashboard angemeldet haben, klicken Sie auf die Schaltfläche Administration > System > System > System Info. Auf dem folgenden Bildschirm sollten Sie die aktuellen Systeminformationen sehen:

System info

Klicken Sie anschließend auf die Schaltfläche Administration > System > Update Center, Sie sollten alle installierten Plugins auf dem folgenden Bildschirm sehen:

Update Center

Hier können Sie bestehende Plugins aktualisieren und auch verfügbare Plugins installieren. Nach der Installation oder Aktualisierung der erforderlichen Plugins müssen Sie auf die Schaltfläche „Neustart“ klicken, um das System neu zu starten und die Änderungen zu aktualisieren.

Fazit

Im obigen Tutorial haben wir gelernt, SonarQube auf Ubuntu 16.04 zu installieren und die grundlegende Verwendung von SonarQube zu erlernen. Sie können es nun problemlos in der Produktionsumgebung einsetzen. Zögere nicht, mich zu kommentieren, wenn du Hilfe brauchst.

Das könnte Dich auch interessieren …