SonarQube unter CentOS 7 installieren – Schritt-für-Schritt-Anleitung

SonarQube ist ein quelloffenes Tool zur Qualitätssicherung in der Softwareentwicklung. Die Anwendung wurde in Java geschrieben und ist mit verschiedenen Datenbanksystemen kompatibel. Sie ermöglicht die kontinuierliche Analyse von Quellcode, überwacht die Integrität von Anwendungen und weist auf neu entstandene Fehler hin. Dank leistungsstarker Code-Analysetools erkennt SonarQube auch komplexe Probleme und lässt sich problemlos in DevOps-Umgebungen integrieren.

In dieser Anleitung zeigen wir dir, wie du die aktuelle Version von SonarQube auf einem CentOS 7 System installierst.

Voraussetzungen

  • Ein 64-Bit CentOS 7 Server mit mindestens 2 GB RAM
  • Ein Benutzerkonto mit sudo-Rechten

Schritt 1: System aktualisieren

Bevor neue Pakete installiert werden, empfiehlt es sich, das CentOS-System auf den neuesten Stand zu bringen. Melde dich mit einem Benutzerkonto mit sudo-Rechten an und führe folgende Befehle aus:


sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now

Sobald das System neu gestartet wurde, logge dich erneut als sudo-Benutzer ein, um fortzufahren.

Schritt 2: Java installieren

Lade zunächst das Oracle SE JDK im RPM-Format herunter:


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“

Installiere anschließend das heruntergeladene Paket mit folgendem Befehl:


sudo yum -y localinstall jdk-8u131-linux-x64.rpm

Überprüfe danach, ob Java korrekt installiert wurde:

Schritt 3: PostgreSQL installieren und konfigurieren

Richte zunächst das Repository für PostgreSQL ein:


sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Installiere anschließend den Datenbankserver samt Zusatztools:


sudo yum -y install postgresql96-server postgresql96-contrib

Initialisiere den Datenbankdienst mit folgendem Befehl:


sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

Passe danach die Authentifizierungsmethode an:


sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

Suche und ersetze die folgenden Einträge:


# 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

Ändere sie wie folgt ab:


# 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

Starte PostgreSQL und aktiviere den Dienst für den automatischen Systemstart:


sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

Ändere das Passwort für den Standardbenutzer postgres:

Wechsle anschließend zum Benutzer postgres:

Erstelle einen eigenen PostgreSQL-Nutzer für SonarQube:

Öffne die PostgreSQL-Shell:

Lege ein sicheres Passwort für den neuen Benutzer an:


ALTER USER sonar WITH ENCRYPTED password ‚StrongPassword‘;

Erstelle die Datenbank sonar und verknüpfe sie mit dem zuvor erstellten Benutzer:


CREATE DATABASE sonar OWNER sonar;

Beende die PostgreSQL-Konsole mit:

Zurück in die normale Benutzerumgebung gelangst du mit:

Schritt 4: SonarQube herunterladen und konfigurieren

Lade das Installationsarchiv von SonarQube herunter:


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

Die jeweils neueste Version findest du auf der offiziellen SonarQube-Downloadseite.

Installiere das Entpackungswerkzeug unzip:

Entpacke das heruntergeladene Archiv nach /opt:


sudo unzip sonarqube-6.4.zip -d /opt

Benenne den entpackten Ordner um, um ihn einheitlich zu referenzieren:


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

Öffne nun die Konfigurationsdatei von SonarQube zur Bearbeitung:


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

Suche die folgenden Einträge und trage die Verbindungsdaten zur zuvor eingerichteten PostgreSQL-Datenbank ein:


sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

Schritt 5: Systemd-Dienst für SonarQube einrichten

Damit SonarQube nicht manuell gestartet werden muss, wird ein systemd-Service definiert:


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

Füge in der Datei folgenden Inhalt ein:


[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

Aktiviere den Dienst und starte SonarQube:


sudo systemctl start sonar
sudo systemctl enable sonar

Den aktuellen Status des Dienstes überprüfst du mit:


sudo systemctl status sonar

Schritt 6: Apache als Reverse Proxy einrichten

Standardmäßig läuft SonarQube lokal auf Port 9000. Um es über Port 80 öffentlich zugänglich zu machen, installiere den Apache-Webserver:

Erstelle eine neue virtuelle Host-Konfigurationsdatei:


sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf

Füge folgenden Inhalt ein:

ServerName sonar.yourdomain.com
ServerAdmin me@yourdomain.com
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

Aktiviere und starte den Apache-Webserver:


sudo systemctl start httpd
sudo systemctl enable httpd

Schritt 7: Firewall-Einstellungen anpassen

Erlaube HTTP-Zugriffe durch die Firewall:


sudo firewall-cmd –add-service=http –permanent
sudo firewall-cmd –reload

Starte SonarQube neu:


sudo systemctl start sonar

Deaktiviere SELinux vorübergehend, um Zugriffsprobleme zu vermeiden:

SonarQube ist nun einsatzbereit und über die folgende Adresse erreichbar:

http://sonar.yourdomain.com

Zugangsdaten (Standard):

  • Benutzername: admin
  • Passwort: admin

Nach dem Login kannst du direkt mit der kontinuierlichen Codeanalyse starten.

Für neuere Versionen

Bei der Installation von SonarQube ab Version 7.1 sind zusätzliche Anpassungen notwendig, da Elasticsearch nicht als root ausgeführt werden darf:

  • Ändere die Besitzrechte des Installationsverzeichnisses:

chown -R sonar:sonar /opt/sonarqube
  • Bearbeite das Startskript sonar.sh und setze den Benutzer:

Ändere die Zeile:

#RUN_AS_USER=

zu:

RUN_AS_USER=sonar

  • Passe zusätzlich die systemd-Service-Datei an, sodass sie mit dem Benutzer sonar arbeitet.

Fazit

Mit dieser detaillierten Anleitung hast du SonarQube erfolgreich unter CentOS 7 eingerichtet – inklusive PostgreSQL-Integration, systemd-Dienst und Reverse Proxy via Apache. Diese Konfiguration bietet dir eine stabile Grundlage für die fortlaufende Analyse der Codequalität in einer produktionsreifen Umgebung. Achte darauf, dein Setup zusätzlich abzusichern, um langfristige Stabilität und Sicherheit zu gewährleisten.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: