Hallo habrozhiteli!
In diesem Handbuch möchte ich eine schrittweise Einrichtung für die Bereitstellung einer Plattform für die kontinuierliche Analyse und Messung der Codequalität beschreiben. Es gibt viele ähnliche Artikel im Netzwerk, aber ich möchte nur die Hauptsache hervorheben, damit alle Neulinge sich beim ersten Mal damit befassen können. Wir werden SonarQube 7.9
mit PostgreSQL 10
SonarQube 7.9
.
Du hast das Wiki schon gelernt, oder?
Und bevor wir anfangen
Ich möchte, dass Sie entscheiden, welche Version implementiert werden soll, da mit jedem Update immer mehr Plugins bezahlt werden, was sich natürlich auf die finanziellen Kosten oder die Funktionalität auswirkt.
Im Allgemeinen - folgen Sie diesem Link und überzeugen Sie sich selbst: Plugin-Versionsmatrix .
Gemäß der Dokumentation: Es wird empfohlen, den Server und die Datenbank auf verschiedenen Computern zu halten . Im Sandkasten kann man aber auch mit einem trainieren.
Wenn Sie Ubuntu und 2 Server haben
Wenn Sie sich für den Pfad der Empfehlungen entscheiden und nicht zwei virtuelle Maschinen erstellen möchten, erstellen Sie eine - Sie können den Namen und die IP-Adresse des zweiten Servers einfach und einfach mit den folgenden Befehlen ändern:
::: Hostnamen ändern :::
$ hostnamectl set-hostname sonarapp sudo nano /etc/hostname sudo nano /etc/hosts
::: IP-Ubuntu ändern :::
sudo nano /etc/netplan/01-eth0.yaml
Suchen Sie dort die bekannten Zeilen und ändern Sie die Parameter des Computernamens und der IP-Adresse.
Und was soll passieren :
Sonar-App-Server [SonarApp]: 8 Kerne, 16 GB RAM, 20 GB + 50 GB (/ opt) Speicherplatz
Sonardatenbank [SonarDB]: 8 Kerne, 16 GB RAM, 20 GB + 50 GB (/ opt) Speicherplatz
1. Ich schlage vor, mit einer Datenbank zu beginnen
Melden Sie sich unter unserem guten Administrator am 192.168.0.16 (SonarDB) an. Es ist sehr wichtig, dass Sie NICHT als Root ausgeführt werden.
Stellen Sie sicher, dass PostgreSQL auf dem System installiert ist. Es gibt viele Möglichkeiten, aber versuchen Sie die einfachste:
$ which psql $ psql -V $ find / -name 'postgres'
Sehen Sie, welche Pakete auf das System heruntergeladen werden:
$ dpkg -l | grep postgres
Wenn nichts gefunden wurde, überprüfen Sie, ob sich PostgreSQL 10 in den Repositorys befindet:
$ sudo apt-cache search postgresql-10
Die offizielle PostgreSQL-Installationsdokumentation: Link . Aber wenn in Ordnung:
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add - $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list' $ sudo apt-get update $ sudo apt-get install postgresql-10 pgadmin4
Der Befehl dpkg-recfigure locales öffnet ein Dialogfeld unter Debian, in dem Sie das gewünschte Gebietsschema auswählen können. Wählen Sie en_US.UTF-8
.
Starten Sie!
$ sudo systemctl start postgresql $ sudo systemctl status postgresql $ sudo nano /etc/postgresql/10/main/postgresql.conf
Überprüfen Sie, ob die Installation erfolgreich ist:
$ sudo apt-get install -y net-tools $ sudo netstat -antup | grep 5432 $ dpkg --get-selections |grep postgres $ pg_lsclusters
Herzliche Glückwünsche! Fahren Sie fort. :)
sudo su -l postgres psql
Ändern Sie das Kennwort für den Standardbenutzer von PostgreSQL
$ sudo passwd postgres
Wechseln Sie zum Benutzer postgres.
$ su - postgres
Wechseln Sie zur PostgreSQL-Shell.
$ psql
PostgreSQL-Grundkonfiguration
Legen Sie ein Kennwort für den neu erstellten Benutzer für die SonarQube-Datenbank fest.
CREATE ROLE sonar WITH PASSWORD 'sonar'; SELECT rolname FROM pg_roles; alter role sonar login; SELECT pg_reload_conf(); Create a new database for PostgreSQL database by running: create database sonar owner sonar;
Beenden Sie die psql-Shell:
'\q'
PostgreSQL-Datenbankmigration
Beenden Sie den PostgreSQL-Dienst
$ service postgresql stop
Datenverzeichnis ändern.
$ psql
$ sudo rsync -av /var/lib/postgresql /opt/sonardb $ sudo mv /var/lib/postgresql/*/main /var/lib/postgresql/*/main.bak $ sudo nano /etc/postgresql/*/main/postgresql.conf
Änderungsprüfung
$ sudo -u postgres psql
Und müssen auch Systemparameter überprüfen. Sie können der Datei /etc/sysctl.conf
(oder /etc/sysctl.d/99-sonarqube.conf
) /etc/sysctl.d/99-sonarqube.conf
oder im Terminal eingegeben werden:
sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096
2. Und jetzt beschäftigen wir uns mit dem SonarQube-Anwendungsserver
Melden Sie sich unter unserem guten Administrator am 192.168.0.15 (SonarApp) an. Es ist auch wichtig, dass es NICHT root ist.
Die Zeilen, die mit dem Zeichen $ beginnen, sind Terminaleingaben. Der Rest wird in den Dateien bearbeitet oder in der Ausgabe empfangen (Informationsausgabe).
Für SonarQube muss JAVA funktionieren. Nimm OpenJDK
Installieren Sie open-jdk11
$ sudo apt-get install openjdk-11-jdk
Java-Pfad ändern
$ nano ~/.bash_profile export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH
Stellen Sie sicher, dass JAVA erfolgreich zum System hinzugefügt wurde :
$ java -version
Laden Sie das Archiv der SonarQube-Installationsdateien herunter.
$ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip
Installieren Sie unzip, indem Sie Folgendes ausführen:
Entpacken Sie das Archiv mit dem folgenden Befehl
$ sudo unzip sonarqube-7.9.1.zip -d /opt
Benennen Sie das Verzeichnis um
$ sudo mv /opt/sonarqube-7.9.1 /opt/sonarqube
Fügen Sie Sonarbenutzer und Berechtigungen hinzu
Weitere Informationen zur Benutzerverwaltung unter Unix .
Erstellen Sie einen Benutzer mit dem Namen sonar und machen Sie ihn zum Eigentümer des /opt/sonarqubedirectory
$ sudo adduser sonar $ sudo passwd sonar $ sudo chown -R sonar:sonar /opt/sonarqube
Listenbenutzer im System abrufen:
$ cut -d: -f1 /etc/passwd
In welchen Gruppen ist Ihr neuer Benutzer:
$ groups sonar
Fortsetzung Konfigurieren Sie SonarQube
$ sudo nano /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.web.host=192.168.0.15
Erstellen Sie eine Datei /etc/systemd/system/sonarqube.service
und /etc/systemd/system/sonarqube.service
den folgenden Inhalt in die Datei ein
[Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=simple User=sonar Group=sonar PermissionsStartOnly=true ExecStart=/bin/nohup java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-7.9.1.jar StandardOutput=syslog LimitNOFILE=65536 LimitNPROC=8192 TimeoutStartSec=5 Restart=always [Install] WantedBy=multi-user.target
Starten und aktivieren Sie Sonarqube
$ sudo systemctl start sonarqube $ sudo systemctl enable sonarqube
Führen Sie Folgendes aus, um zu überprüfen, ob der Dienst ausgeführt wird:
$ sudo systemctl status sonarqube
Protokoll:
tail -f /opt/sonarqube/logs/sonar.log
Um die Verfügbarkeit der Datenbank zu überprüfen, stellen Sie eine Verbindung zu 192.168.0.15 her und geben Sie Folgendes ein:
$ psql -h 192.168.0.16 -p 5432 -U sonar
Das ist alles. Um sicherzustellen, dass alles funktioniert, rufen Sie den Browser auf (stellen Sie sicher, dass das 192.168.XX-Netzwerk über Ihr Netzwerk erreichbar ist, oder verwenden Sie Links).
Wir werden 192.168.0.15:9000 wählen und Sie sollten vom Autorisierungsfenster begrüßt werden.
SonarQube Standard Primary Admin-Benutzerdaten: