lrk.sonarqube
Rôle Ansible : SonarQube (lrk.sonarqube)
Un rôle Ansible qui installe SonarQube.
Systèmes d'exploitation pris en charge
Ce rôle a été testé sur les systèmes d'exploitation suivants :
- EL - 7
- Debian - Stretch
Exigences
Les exigences de SonarQube sont :
- JRE Oracle 11 ou version ultérieure ou OpenJDK 11 ou version ultérieure installé sur votre machine.
Pour un environnement de production, assurez-vous de définir la variable sonar_db_embedded
sur false et de configurer les variables sonar_db_*.
SonarQube prend en charge les bases de données suivantes : MySQL, Oracle, PostgreSQL et Microsoft SQLServer.
Pour plus d'informations, consultez les exigences de SonarQube.
Installation de plugins SonarQube
Ce rôle prend en charge l'installation de plugins selon la procédure "Installer un plugin SonarQube". Les méthodes de marché et manuelles sont disponibles.
Veuillez noter que ce rôle ne gère pas les plugins déjà installés. Vous devez supprimer vous-même les versions précédentes.
Pour installer des plugins, listez-les dans le dictionnaire sonar_plugins
, les options suivantes sont disponibles :
name
: nom du plugin, pour un plugin du marché, il doit s'agir du nom du manifeste du plugin (json) ici, pour les plugins manuels, cela peut être le nom du dossier du plugin ici ou fournir l'optionurl
(voir ci-dessous) ;version
: version du plugin ;commercial
: s'agit-il d'un plugin commercial (un autre emplacement de téléchargement en fait), utile uniquement pour les plugins manuels ;url
: lien vers le fichier jar du plugin, si fourni, le rôle n'essaie pas de trouver le plugin et utilise ce lien, cela n'a pas de sens pour les plugins du marché car l'URL de téléchargement doit être fournie dans le manifeste ;marketplace
: est-ce un plugin manuel ou du marché, par défaut c'est false.
Exemple :
sonar_plugins:
- name: "sonar-city-model-plugin"
version: "3.3"
commercial: true
url: "http://www.qalitax.com/descargas/product/sonar-city-model-plugin-3.3.jar?customerSurnames=update-center&customerCompany=sonar-update-center&customerName=sonarqube&[email protected]"
- name: "ansible"
version: "2.4.0"
marketplace: true
Comment tester localement avec vagrant
- Installez Vagrant et VirtualBox.
- Initialisez virtualenv et configurez les exigences, par exemple :
python -m venv ~/.virtualenvs/molecule
. ~/.virtualenvs/molecule/bin/activate
pip install -r molecule/vagrant/requirements.txt
- Exécutez les tests (la box CentOS est utilisée par défaut) :
molecule test -s vagrant
- (facultatif) Exécutez les tests pour un autre système d'exploitation (ubuntu dans ce cas) :
MOLECULE_DISTRO=ubuntu/trusty64 molecule test -s vagrant
Variables de rôle
Les variables disponibles avec les valeurs par défaut sont listées ci-dessous (voir defaults/main.yml
)
---
---
# fichier par défaut pour ansible-role-sonarqube/
# Répertoire d'installation de SonarQube
sonar_install_directory: /opt/sonarqube
# Répertoire de base de SonarQube
sonar_base_dir: "{{ sonar_install_directory }}/sonarqube-{{ sonar_version }}"
# Répertoire du démon SonarQube
sonar_daemon_dir: "{{ sonar_base_dir }}/bin/linux-x86-{{ ansible_userspace_bits }}"
# Répertoire de conf SonarQube
sonar_conf_dir: "{{ sonar_base_dir }}/conf"
sonar_logs_dir: "/var/log/sonarqube"
# Chemins vers les fichiers de données persistants (base de données intégrée et index de recherche)
sonar_data_dir: "{{ sonar_base_dir }}/data"
# Chemins vers les fichiers temporaires
sonar_temp_dir: "{{ sonar_base_dir }}/temp"
# Version de SonarQube à installer
sonar_version: 5.6.7
# Groupe système SonarQube
sonar_group: sonar
# Utilisateur système SonarQube
sonar_user: sonar
# Paramètre LimitNOFILE du service SonarQube
sonar_limitnofile: 65536
# Plugins SonarQube à installer (voir la description détaillée ci-dessus)
sonar_plugins: []
# Utiliser la base de données H2 intégrée, pas pour un environnement de production
sonar_db_embedded: true
sonar_db_embedded_port: 9092
# Identifiants JDBC SonarQube
sonar_db_user: ""
sonar_db_pass: ""
# URL JDBC SonarQube
sonar_jdbc_url: ""
# Nombre maximum de connexions actives JDBC SonarQube
sonar_jdbc_maxactive: 60
# Nombre maximum de connexions pouvant rester inactives
sonar_jdbc_maxidle: 5
# Nombre minimum de connexions pouvant rester inactives
sonar_jdbc_minidle: 2
# Temps maximum d'attente en millisecondes pour une connexion
sonar_jdbc_maxwait: 5000
sonar_jdbc_min_evictable_idle_time_millis: 600000
sonar_jdbc_time_between_eviction_runs_millis: 30000
# Configuration du serveur Web SonarQube
sonar_web_java_opts: ""
# Adresse IP de liaison
sonar_web_host: 0.0.0.0
# Port TCP pour les connexions HTTP entrantes
sonar_web_port: 9000
# Niveau des logs. Valeurs prises en charge : INFO (par défaut), DEBUG et TRACE
sonar_log_level: "INFO"
# Politique de rotation des fichiers de logs
sonar_log_rolling_policy: "time:yyyy-MM-dd"
# Maximum de fichiers à conserver si une politique de rotation est activée
sonar_log_max_files: 7
# Activer les journaux d'accès
sonar_web_access_logs_enable: true
# Configurations diverses...
Dépendances
Il n'y a pas de dépendances directes. JDK doit être installé en premier.
Exemple de Playbook
- hosts: servers
pre_tasks:
- name: Installer les dépendances de paquets.
package:
name: "{{ item }}"
state: "present"
with_items:
- unzip
roles:
- lrk.sonarqube
Mise à jour
Veuillez tester la mise à jour dans un environnement de pré-production d'abord.
Le processus consiste en plusieurs étapes :
- Changez la variable
sonar_version
- Examinez la variable
sonar_plugins
selon https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/ - Exécutez le rôle sur l'installation existante. Ansible va :
- créer le dossier d'installation
- y placer les binaires de la nouvelle version de SonarQube avec les plugins
- arrêter le service en cours d'exécution
- mettre à jour les configurations
- redémarrer le service
- vérifier que le service Web a démarré et que le numéro de version de SonarQube apparaît dans web.log
- s'assurer que la version de Sonar en cours d'exécution correspond à celle attendue
- Ensuite, ouvrez http://votreURLSonarQube/setup et suivez les instructions d'installation décrites dans https://docs.sonarqube.org/latest/setup/upgrading/ (le résultat du rôle laisse un rappel pour cela)
Veuillez prêter attention :
- le rôle ne sauvegarde pas la base de données
- le rôle ne compare pas les versions. Évitez de faire une rétrogradation par erreur
- le rôle ne supprime pas le dossier avec l'installation précédente, donc après la mise à jour, le chemin spécifié dans la variable
sonar_install_directory
contiendra plus d'unsonar_base_dir
.
Licence
Licence Apache Version 2.0
Références
Informations sur l'auteur
Ce rôle a été créé par Lrk.
An Ansible Role that install SonarQube.
ansible-galaxy install lrk.sonarqube