SonarQube ist eine kostenlose Open-Source-Plattform für Qualitätsmanagementsysteme, die zur Automatisierung der Codeprüfung verwendet werden kann. Es kann Quellcodedateien analysieren, eine Reihe 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 die h2-Datenbank, ist aber nicht skalierbar. So können Sie SonarQube mit anderen Datenbankservern wie MSSQL, PostgreSQL, Oracle und MySQL integrieren. SOnarQube wird mit vielen Plugins geliefert, 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 verringern. Sie können SolarQube über die SonarLint-Plug-ins einfach in Eclipse-, Visual Studio- und IntelliJ IDEA-Entwicklungsumgebungen integrieren.
In diesem Tutorial erfahren wir, wie SonarQube auf einem Ubuntu 16.04-Server installiert wird.
Voraussetzungen
- Eine neue Ubuntu 16.04-Serverinstallation auf Ihrem System.
- Mindestens 4 GB RAM.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
Erste Schritte
Bevor Sie beginnen, 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
Nachdem Sie Ihr System aktualisiert haben, können Sie mit der Installation von Java fortfahren.
1 Java installieren
Sonarqube ist eine Java-basierte Anwendung, daher müssen Sie zuerst Java 8 installieren. Standardmäßig ist Java 8 nicht im Ubuntu-Repository verfügbar. Sie können Java 8 installieren, indem Sie das PPA-Repository webupd8team zu Ihrem System hinzufügen.
Fügen Sie zuerst das PPA hinzu, indem Sie den folgenden Befehl ausführen:
sudo add-apt-repository ppa:webupd8team/java
Aktualisieren Sie als Nächstes 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 Installieren Sie Apache und MariaDB
Sie müssen auch Apache und MariaDB installieren, da wir Apache für den 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 ihnen, 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 Konfigurieren Sie MariaDB
Standardmäßig ist die MariaDB-Installation nicht gesichert, daher müssen Sie die MariaDB-Installation sichern. Sie können dies tun, indem Sie das Skript mysql_secure_installation ausführen:
sudo mysql_secure_installation
In diesem Prozess werden Sie aufgefordert, das Root-Passwort festzulegen, anonyme Benutzer zu entfernen, die Root-Anmeldung aus der Ferne 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 dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und erstellen Sie dann eine Datenbank für SonarQube:
MariaDB [(none)]> CREATE DATABASE sonardb;
Erstellen Sie als Nächstes einen neuen Datenbankbenutzer und geben Sie Ihrem Datenbankbenutzer die entsprechenden Berechtigungen für die von Ihnen erstellte Datenbank.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
Wenden Sie als Nächstes die Änderungen mit dem folgenden Befehl auf die Datenbankberechtigungen an:
MariaDB [(none)]> FLUSH PRIVILEGES;
Verlassen 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 von SonarQube von der offiziellen Website herunterladen. Sie können es mit dem wget-Befehl herunterladen:
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
Sobald 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 systemd-Dienstdatei für SonarQube.
sudo nano /etc/systemd/system/sonar.service
Fügen Sie 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, starten Sie dann den SonarQube-Dienst und aktivieren Sie ihn beim Booten mit dem folgenden Befehl:
sudo systemctl start sonar
sudo systemctl enable sonar
Der SonarQube-Prozess benötigt einige Zeit, um eine Datenbank zu erstellen und Daten zu füllen. 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 lauscht SonarQube auf Port 9000. Hier verwenden wir Apache als Reverse-Proxy, sodass auf SonarQube über Port 80 zugegriffen werden kann:
Aktivieren Sie zunächst das Apache-Proxy-Modul mit dem folgenden Befehl:
sudo a2enmod proxy
sudo a2enmod proxy_http
Erstellen Sie als Nächstes mit dem folgenden Befehl eine neue virtuelle Hostdatei für SonarQube:
sudo nano /etc/apache2/sites-available/sonar.conf
Fügen Sie die folgenden Zeilen hinzu:
<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>
Speichern und schließen Sie die Datei und aktivieren Sie dann den 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 Greifen Sie auf die SonarQube-Weboberfläche zu
Alle erforderlichen Komponenten werden installiert und konfiguriert. Jetzt ist es an der Zeit, auf die SonarQube-Weboberfläche zuzugreifen.
Bevor Sie darauf zugreifen, 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 jetzt 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 , sollten Sie den folgenden Bildschirm sehen:
Klicken Sie nun auf die Schaltfläche „Anmelden“, Sie sollten den folgenden Bildschirm sehen:
Melden Sie sich mit dem Standardbenutzernamen „admin“ und dem Passwort „admin“ an, Sie sollten den folgenden Bildschirm sehen:
Nachdem Sie sich beim SonarQube-Dashboard angemeldet haben, klicken Sie auf die Schaltfläche Verwaltung> System> Systeminfo. Sie sollten die aktuellen Systeminformationen auf dem folgenden Bildschirm sehen:
Als nächstes klicken Sie auf die Schaltfläche Administration> System> Update Center, Sie sollten alle installierten Plugins auf dem folgenden Bildschirm sehen:
Hier können Sie vorhandene 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.
Schlussfolgerung
Im obigen Tutorial haben wir gelernt, SonarQube auf Ubuntu 16.04 und die grundlegende Verwendung von SonarQube zu installieren. Sie können es jetzt problemlos in der Produktionsumgebung bereitstellen. Fühlen Sie sich frei, mich zu kommentieren, wenn Sie Hilfe benötigen.