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:
java -version
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
:
sudo passwd postgres
Wechsle anschließend zum Benutzer postgres
:
su – postgres
Erstelle einen eigenen PostgreSQL-Nutzer für SonarQube:
createuser sonar
Öffne die PostgreSQL-Shell:
psql
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:
\q
Zurück in die normale Benutzerumgebung gelangst du mit:
exit
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
:
sudo yum -y install 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:
sudo yum -y install httpd
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:
sudo setenforce 0
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.