lrk.sonarqube

Rôle Ansible : SonarQube (lrk.sonarqube)

Molecule Galaxy Ansible Ansible Ansible

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'option url (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

  1. Installez Vagrant et VirtualBox.
  2. Initialisez virtualenv et configurez les exigences, par exemple :
python -m venv ~/.virtualenvs/molecule
. ~/.virtualenvs/molecule/bin/activate
pip install -r molecule/vagrant/requirements.txt
  1. Exécutez les tests (la box CentOS est utilisée par défaut) :
molecule test -s vagrant
  1. (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 :

  1. Changez la variable sonar_version
  2. Examinez la variable sonar_plugins selon https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/
  3. 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
  1. 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'un sonar_base_dir.

Licence

Licence Apache Version 2.0

Références

Informations sur l'auteur

Ce rôle a été créé par Lrk.

À propos du projet

An Ansible Role that install SonarQube.

Installer
ansible-galaxy install lrk.sonarqube
Licence
apache-2.0
Téléchargements
103.5k
Propriétaire