Skip to content

LAB : Installation & Configuration SonarQube sur Docker#

Présentation#

Objectifs:#

  • Integration de SonarQube et Jenkins

Prérequis#

  • Connaissance de Docker
  • Instance docker fonctionnel
  • Editeur de code
  • Utilitaire installé sur la machine: git
  • Avoir un proxy nginx fonctionnel (voir lab deploy reverse proxy sur la section 03-conteneurisation)
  • Instances SonarQube (lab01 stage 7) et Jenkins (lab01 stage 6)

Déroulement du Lab#

Etape 1 : Lancer Sonar et Jenkins#

Si vous avez des instances sonarqube et jenkins en cours merci de sauter cet etape.

La commande suivante permet de récupérer le code source contenant les fichiers nécessaires pour le provisionning de l'environnement.

$ git clone https://github.com/wingufactory/lecloudfacile-devops-labs.git
$ cd lecloudfacile-devops-labs/sonarqube

le repertoire contient respectivement:

  • sonarqube: le fichier docker-compose de sonarqube
  • jenkins : Pour deployer jenkins
  • nginx-proxy: la configuration du nginx

Merci d'entrer sur chaque repertoire et de lancer les instances nginx, sonar et jenkins:

docker compose up -d

Pour se connecter: - Sonarqube: http://quality.lcf.io/ - Jenkins: http://jenkins-dev.lecloudfacile.io/

Etape 2 : Génération d'un Token sur SonarQube#

Pour intégrer Jenkins et Sonarqube, il faut au préalable créer un token sur Sonarqube. Ce token permettra à Jenkins de pouvoir avoir une communication avec Sonar.

Une fois connecter sur sonar, aller sur My Account

Puis dans l'onglet Security

Scroller en bas puis générer un token.

Une fois le token généré, merci de garder le celui-ci quelque part.

Etape 2 : Jenkins - installation du plugin Sonar#

Avant d'attaquer la configuration de sonarqube sur jenkins, il faudra en premier lieu installer le plugin sonar-scanner.

Pour cela, aller dans plugins et rechercher Sonar

L'installation est bien terminée

Etape 3 : Configure SonarQube Scanner#

Une fois l'installation de Sonarqube scanner terminé, aller dans Tools puis faire la configuration du scanner.

Merci de sauvegarder le nom du scanner parce qu'on utilisera dans notre pipeline

Etape 4 : Configure SonarQube Server sur Jenkins#

Aller dans System, puis scroller jusqu'au SonarQube Server. Ajouter votre serveur SonarQube.

Il faudra aussi ajouter le token sonarqube comme credentials pour permettre à jenkins de se connecter sur sonarqube.

Etape 5 : Creation Pipeline SecOps#

Créer un pipeline scripté avec le jenkinsfile suivant:

pipeline {
    agent any 

    stages { 
        stage('SCM Checkout') {
            steps{
           git branch: 'main', url: 'VOTRE_URL_GIT.git'
            }
        }
        // run sonarqube test
        stage('Run Sonarqube') {
            environment {
                scannerHome = tool 'sonar-lcf';
            }
            steps {
              withSonarQubeEnv(credentialsId: 'sonar', installationName: 'Sonar') {
                sh "${scannerHome}/bin/sonar-scanner"
              }
            }
        }
    }
}

Sur votre repositorie, il faudra ajouter le fichier sonar-project.properties à la racine de votre projet avec comme contenu:

sonar.projectKey=sonar-project-key

Une fois le pipeline en place, merci