[SonarQube] Comment installer sonarqube sur Debian Jessie avec PostgreSQL

Publié par Sébastien Vermeille le (0 lectures)

loyalty

Les pré-requis pour suivre ce tutorial

  • Avoir un serveur sous Debian 8 (Jessie)
  • Avoir installé wget (sudo apt-get install wget -y)
  • Avoir installé unzip (sudo apt-get install unzip -y)
  • Avoir installé chkconfig (sudo apt-get install chkconfig)
  • Avoir un accès ssh au serveur

Les pré-requis hardware conseillés par Sonarqube:

  • 2Gb de RAM dédiées à Sonarqube
  • L’espace disque dépend de votre projet. Sonarqube.com utilise postgresql 9.5 et utilise 15Gb de stockage.

Installation

Nous allons installer ce que recommande sonarqube sur sa page (https://docs.sonarqube.org/display/SONAR/Requirements)[https://docs.sonarqube.org/display/SONAR/Requirements].

Installation d’Oracle JRE 8

Le JRE d’oracle n’est pas disponible dans les dépots Debian pour des raison de licenses.

Mais, WebUpd8 a créer son dépot privé et nous le fourni gratuitement.

Ajout du dépot PPA:

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | \
  sudo tee /etc/apt/sources.list.d/webupd8team-java.list
  
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | \
  sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list
  
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886

sudo apt-get update

sudo apt-get install oracle-java8-installer

Oracle vous demande d’accepter sa license. (Autant dire que vous n’avez pas trop le choix :) )

Petit test pour voir que l’installation s’est bien déroulée:

java -version

# java version "1.8.xyz"                                  
# Java(TM) SE Runtime Environment (xyu)                                
# Java HotSpot(TM) 64-Bit Server VM (xyz) 

Installation d’OpenJDK 8

On ajoute le dépot backport:

echo "deb http://http.debian.net/debian jessie-backports main" | \
sudo tee /etc/apt/sources.list.d/jessie-backports.list

sudo apt-get update

sudo apt-get install -t jessie-backports openjdk-8-jdk

Un petit contrôle que tout est ok entre le JDK et le JRE

sudo update-java-alternatives --list

# java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64 <---- openjdk 1.8 = 8
# java-8-oracle 1081 /usr/lib/jvm/java-8-oracle   <----- JRE 8

Installation de PostgreSQL 9.6

(On peut installer également du OracleDB, MySQL ou MS SQL Server) J’ai fais ce choix simplement parce que j’ai lu dans la doc que Sonarqube.com utilise postgresql donc je présume que si un bug survient, l’équipe sera instantannément au courant :).

(Oui je sais ils ont surement des environment de test automatisés :) )

C’est parti:

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" | \
sudo tee /etc/apt/sources.list.d/pgdg.list

sudo apt-get update

sudo apt-get install postgresql postgresql-contrib

Petit contrôle:

psql --version

# psql (PostgreSQL) 9.6.3

Super on peut passer à la suite :)

Création d’un user et d’une base de donnée pour SonarQube

On se connecte à postgres:

sudo su - postgres
psql

(Si jamais pour fermer ce terminal il suffit de taper \q + enter -> ctrl + X ne fonctionnera pas :)

On crée notre utilisateur (toujours depuis le terminal postgres):

CREATE USER sonar WITH PASSWORD 'yourpassword'; -- Je l'ai appelé sonar mais vous êtes libre d'en choisir un autre

On crée ensuite la base de donnée:

CREATE DATABASE sonar; -- Pareil vous pouvez changer le nom

On autorise notre utilisateur à tout faire sur cette base de donnée:

GRANT ALL PRIVILEGES ON DATABASE sonar to sonar;

On quitte le terminal psql: “\q”

On se déconnecte de “psql” pour revenir à notre utilisateur classique:

exit

Installation de sonarqube:

On récupère l’archive de la version qui nous intéresse sur la page sonarqube : (https://www.sonarqube.org/downloads/)[https://www.sonarqube.org/downloads/]

Dans le cas de ce tuto nous utiliserons la version 6.4 non LTS mais libre à vous de choisir la release LTS l’installation se fera de la mme manière.

sudo mkdir /opt/sonarqube
cd /opt/sonarqube
sudo wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
sudo unzip sonarqube-6.4.zip -d .
sudo rm sonarqube-6.4.zip

Maintenant on adapte le fichier de configuration pour que sonarqube puisse accéder à la base de donnée:

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

Ajouter les valeurs correspondantes :

sonar.jdbc.username=sonar

sonar.jdbc.password=votreMotDePasse

sonar.jdbc.url=jdbc:postgresql://localhost/sonar <– sonar = le nom de votre base de donnée

sonar.web.javaOpts=-server -Xmx1024m

sonar.web.host=192.0.0.1 <– l’ip locale de la machine par exemple.

sonar.web.port=80

Démarrer le serveur sonarqube

Le script de démarrage se trouve dans le dossier:

cd /opt/sonarqube/sonarqube-6.4/bin/linux-x86-64/sonar.sh # pour un debian en 64 bits sinon choisissez linux-x86-32

Il suffit donc de lancer ce script :

sudo /opt/sonarqube/sonarqube-6.4/bin/linux-x86-64/sonar.sh start

Définir sonarqube en tant que service

sudo nano /etc/init.d/sonar

#!/bin/sh
#
# rc file for SonarQube
#
# chkconfig: 345 96 10
# description: SonarQube system (www.sonarsource.org)
#
### BEGIN INIT INFO
# Provides: sonar
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: SonarQube system (www.sonarsource.org)
# Description: SonarQube system (www.sonarsource.org)
### END INIT INFO
 
/usr/bin/sonar $*

Création du lien symbolique:

sudo ln -s /opt/sonarqube/sonarqube-6.4/bin/linux-x86-64/sonar.sh /usr/bin/sonar
sudo chmod 755 /etc/init.d/sonar
sudo chkconfig --add sonar

Voila maintenant on peut faire ceci :

sudo service sonar start
sudo service sonar stop
sudo service sonar restart

Votre serveur est lancé il suffit d’y accéder soit par http://localhost soit via l’ip locale ou publique de votre serveur ;)

Commentaires