SonarQube Update Version 4.4 vers 4.4.1

De EjnTricks

Cette mise à jour s'effectue sur l'installation décrite pour la version 4.4.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Download-icon.png Téléchargement et installation

#sudo wget -P /tmp http://downloads.sonarsource.com/sonarqube/sonarqube-4.4.1.zip
#sudo unzip /tmp/sonarqube-4.4.1.zip -d /var/opt/sonarqube


Icon-Configuration-Settings.png Déploiement

Il faut dans un premier temps organiser les binaires sous /var/opt/sonarqube/4.4.1.

#sudo mv /var/opt/sonarqube/sonarqube-4.4.1 /var/opt/sonarqube/4.4.1
#sudo chown -R sonar:sonar /var/opt/sonarqube/4.4.1
#sudo chmod -R go-rwx /var/opt/sonarqube/4.4.1

Les droits sont positionnés pour que seul le compte sonar puisse accéder aux fichiers.


Run-icon.png Script démarrage

Les modifications dans le script de démarrage, fichier /var/opt/sonarqube/4.4.1/bin/linux-x86-64/sonar.sh, doivent permettre :

  • Spécifier l'utilisateur d'exécution;
  • Spécifier un emplacement spécifique pour le fichier "PID".

A noter que lors de l'exécution, si un compte est spécifié et différent de celui en cours d'exécution, le script de démarrage est redémarré avec le compte souhaité.

# If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write
#  the PID file and wrapper.log files.  Failure to be able to write the log
#  file will cause the Wrapper to exit without any way to write out an error
#  message.
# NOTE - This will set the user which is used to run the Wrapper as well as
#  the JVM and is not useful in situations where a privileged resource or
#  port needs to be allocated prior to the user being changed.
#RUN_AS_USER=
RUN_AS_USER=sonar

Et

# Location of the pid file.
#PIDDIR="."
PIDDIR="/run/sonarqube"

Cependant, le répertoire /run/sonarqube n'existe pas et le compte sonar n'a pas les droits d'écriture dans /run. Une erreur se produira donc lors de l'exécution, car le fichier "PID" ne pourra être créé. Le script de démarrage /var/opt/sonarqube/4.4.1/bin/linux-x86-64/sonar.sh est donc modifié afin de forcer la création du répertoire. Pour rappel, comme il est exécuté avec le compte root du fait du service, il est tout à fait possible de créer le répertoire et de modifier les droits d'accès.

Au final, le script est modifié ainsi :

# Location of the pid file.
#PIDDIR="."
PIDDIR="/run/sonarqube"

# If uncommented, causes the Wrapper to be shutdown using an anchor file.
#  When launched with the 'start' command, it will also ignore all INT and
#  TERM signals.
#IGNORE_SIGNALS=true

# If specified, the Wrapper will be run as the specified user.
# IMPORTANT - Make sure that the user has the required privileges to write
#  the PID file and wrapper.log files.  Failure to be able to write the log
#  file will cause the Wrapper to exit without any way to write out an error
#  message.
# NOTE - This will set the user which is used to run the Wrapper as well as
#  the JVM and is not useful in situations where a privileged resource or
#  port needs to be allocated prior to the user being changed.
#RUN_AS_USER=
RUN_AS_USER=sonar
if [ ! -d "$PIDDIR" ]; then
        mkdir -p "$PIDDIR"
        [ -z "$RUN_AS_USER" ] || chown "$RUN_AS_USER:$RUN_AS_USER" "$PIDDIR"
fi


Icon-log.png Fichiers log

Par défaut, les logs sont placés dans le répertoire logs de l’instance SonarQube :

  • /var/opt/sonarqube/4.4.1/logs/sonar.log
  • /var/opt/sonarqube/4.4.1/logs/access.log

La définition de ces emplacements se situe dans différentes configurations.

  • Fichier conf/wrapper.conf les écritures du wrapper dans les fichiers sonar.log
# Log file to use for wrapper output logging.
wrapper.logfile=../../logs/sonar.log
  • Fichier conf/sonar.properties pour sonar.log et access.log
# Access logs are generated in the file logs/access.log. This file is rolled over when it's 5Mb.
# An archive of 3 files is kept in the same directory.
# Access logs are enabled by default.
#sonar.web.accessLogs.enable=true


Afin de centraliser les logs, les messages sont redirigés vers /var/log/sonarqube en mettant en place des liens symboliques. Ceci permet de ne pas modifier les fichiers de configurations, limitant les modifications lors des futures montées de version. Le répertoire /var/opt/sonarqube/4.4.1/logs existe déjà et sera supprimé. Du fait de cette organisation, utilisation d'un répertoire common, un répertoire /var/opt/sonarqube/common/logs sera créé lors du démarrage. Pour ce dernier, le lien est préalablement créé.

#sudo rmdir /var/opt/sonarqube/4.4.1/logs
#sudo ln -s /var/log/sonarqube /var/opt/sonarqube/4.4.1/logs
#sudo chown -h sonar:sonar /var/opt/sonarqube/4.4.1/logs


Share-icon.png Fichiers communs

Les liens vers les fichiers communs sont mis en place.

#sudo rm -rf /var/opt/sonarqube/4.4.1/conf
#sudo ln -s /var/opt/sonarqube/common/conf /var/opt/sonarqube/4.4.1/conf
#sudo chown -h sonar:sonar /var/opt/sonarqube/4.4.1/conf
#sudo rm -rf /var/opt/sonarqube/4.4.1/data
#sudo ln -s /var/opt/sonarqube/common/data /var/opt/sonarqube/4.4.1/data
#sudo chown -h sonar:sonar /var/opt/sonarqube/4.4.1/data
#sudo rm -rf /var/opt/sonarqube/4.4.1/extensions/plugins
#sudo ln -s /var/opt/sonarqube/common/extensions/plugins /var/opt/sonarqube/4.4.1/extensions/plugins
#sudo chown -h sonar:sonar /var/opt/sonarqube/4.4.1/extensions/plugins
#sudo rm -rf /var/opt/sonarqube/4.4.1/temp
#sudo ln -s /var/opt/sonarqube/common/temp /var/opt/sonarqube/4.4.1/temp
#sudo chown -h sonar:sonar /var/opt/sonarqube/4.4.1/temp


Run-icon.png Exécution

Sur la précédente version, un lien /var/opt/sonarqube/installed a été mis en place pour pointer sur la version à activer. Des liens ont également été mis en place depuis /var/opt/sonarqube/common vers /var/opt/sonarqube/installed. Ainsi, en modifiant le lien installed, ceux-ci seront automatiquement activés sans aucune modification nécessaire.

#sudo service sonarqube stop
#sudo rm /var/opt/sonarqube/installed
#sudo ln -s /var/opt/sonarqube/4.4.1 /var/opt/sonarqube/installed
#sudo chown -h sonar:sonar /var/opt/sonarqube/installed

Il suffit de relancer le service pour la prise en compte de la mise à jour.

#sudo service sonarqube start