lrk.sonarqube
Ansible-Rolle: SonarQube (lrk.sonarqube)
Eine Ansible-Rolle, die SonarQube installiert.
Unterstützte Betriebssysteme
Diese Rolle wurde auf folgenden Betriebssystemen getestet:
- EL - 7
- Debian - Stretch
Voraussetzungen
Die Voraussetzungen von SonarQube sind:
- Oracle JRE 11 oder neuer oder OpenJDK 11 oder neuer auf Ihrem Computer installiert.
Für die Produktionsumgebung stellen Sie sicher, dass die Variable sonar_db_embedded
auf false gesetzt ist und die Variablen sonar_db_* konfiguriert werden.
SonarQube unterstützt folgende Datenbanken: MySQL, Oracle, PostgreSQL und Microsoft SQLServer.
Für weitere Informationen lesen Sie bitte die Voraussetzungen von SonarQube.
Installation von SonarQube-Plugins
Diese Rolle unterstützt die Installation von Plugins basierend auf dem Verfahren "SonarQube Plugin installieren". Sowohl Marktplace- als auch manuelle Methoden werden unterstützt.
Bitte beachten Sie, dass diese Rolle keine vorher installierten Plugins verwaltet. Sie müssen vorherige Versionen selbst entfernen.
Um Plugins zu installieren, listen Sie diese im Wörterbuch sonar_plugins
auf. Folgende Optionen sind verfügbar:
name
: Name des Plugins, bei Marktplace-Plugins sollte es der Name des Manifestes (json) des Plugins von hier sein, bei manuellen Plugins kann es der Name des Plugin-Ordners von hier sein oder Sie geben die Optionurl
an (siehe unten);version
: Plugin-Version;commercial
: Ist dies ein kommerzielles Plugin (ort der anderen Download-Option, sinnvoll nur für manuelle Plugins);url
: Link zur Jar-Datei des Plugins. Wenn angegeben, sucht die Rolle nach dem Plugin nicht, sondern verwendet diesen Link. Macht bei Marktplace-Plugins keinen Sinn, da die Download-URL im Manifest angegeben sein sollte;marketplace
: Ist dies ein manuelles oder Marktplace-Plugin, standardmäßig false.
Beispiel:
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
Wie man lokal mit Vagrant testet
- Installieren Sie Vagrant und VirtualBox.
- Initialisieren Sie die virtuelle Umgebung und richten Sie die Anforderungen ein, beispielsweise:
python -m venv ~/.virtualenvs/molecule
. ~/.virtualenvs/molecule/bin/activate
pip install -r molecule/vagrant/requirements.txt
- Führen Sie Tests durch (Standardmäßig wird eine CentOS-Box verwendet):
molecule test -s vagrant
- (Optional) Führen Sie Tests für ein anderes Betriebssystem durch (in diesem Fall Ubuntu):
MOLECULE_DISTRO=ubuntu/trusty64 molecule test -s vagrant
Rollen-Variablen
Verfügbare Variablen mit Standardwerten sind unten aufgelistet (siehe defaults/main.yml
).
---
---
# Standarddatei für ansible-role-sonarqube/
# Installationsverzeichnis von SonarQube
sonar_install_directory: /opt/sonarqube
# Basisverzeichnis von SonarQube
sonar_base_dir: "{{ sonar_install_directory }}/sonarqube-{{ sonar_version }}"
# Daemon-Verzeichnis von SonarQube
sonar_daemon_dir: "{{ sonar_base_dir }}/bin/linux-x86-{{ ansible_userspace_bits }}"
# Konfigurationsverzeichnis von SonarQube
sonar_conf_dir: "{{ sonar_base_dir }}/conf"
sonar_logs_dir: "/var/log/sonarqube"
# Pfade zu persistenten Datendateien (eingebettete Datenbank und Suchindex)
sonar_data_dir: "{{ sonar_base_dir }}/data"
# Pfade zu temporären Dateien
sonar_temp_dir: "{{ sonar_base_dir }}/temp"
# Zu installierende SonarQube-Version
sonar_version: 5.6.7
# Systemgruppe von SonarQube
sonar_group: sonar
# Systembenutzer von SonarQube
sonar_user: sonar
# Parameter für die Service-LimitNOFILE von SonarQube
sonar_limitnofile: 65536
# Zu installierende SonarQube-Plugins (siehe detaillierte Beschreibung oben)
sonar_plugins: []
# Verwendung der eingebetteten H2-Datenbank, nicht für die Produktionsumgebung
sonar_db_embedded: true
sonar_db_embedded_port: 9092
# JDBC-Anmeldedaten von SonarQube
sonar_db_user: ""
sonar_db_pass: ""
# JDBC-URL von SonarQube
sonar_jdbc_url: ""
# Maximale Anzahl aktiver JDBC-Verbindungen
sonar_jdbc_maxactive: 60
# Maximale Anzahl von Verbindungen, die in der Warteschlange bleiben können
sonar_jdbc_maxidle: 5
# Minimale Anzahl von Verbindungen, die in der Warteschlange bleiben können
sonar_jdbc_minidle: 2
# Maximal Wartezeit in Millisekunden auf eine Verbindung
sonar_jdbc_maxwait: 5000
# SonarQube-Webserver-Konfiguration
sonar_web_java_opts: ""
# Bindungs-IP-Adresse
sonar_web_host: 0.0.0.0
# TCP-Port für eingehende HTTP-Verbindungen. Standardwert ist 9000.
sonar_web_port: 9000
#--------------------------------------------------------------------------------------------------
# LOGGING
# Protokollierungsniveau. Unterstützte Werte sind INFO (Standard), DEBUG und TRACE.
sonar_log_level: "INFO"
# Rollierungsrichtlinie für Protokolldateien
sonar_log_rolling_policy: "time:yyyy-MM-dd"
# Maximale Anzahl an Dateien, die behalten werden, wenn eine Rollierungsrichtlinie aktiviert ist.
sonar_log_max_files: 7
#--------------------------------------------------------------------------------------------------
# ANDERE
# Verzögerung in Sekunden zwischen der Verarbeitung der Benachrichtigungsschlange. Standard ist 60 Sekunden.
sonar_notifications_delay: 60
#--------------------------------------------------------------------------------------------------
# LIZENZ
# Apache Lizenz Version 2.0
Hinweise zur Abhängigkeit
------------
Es gibt keine direkten Abhängigkeiten. JDK sollte zuerst installiert werden.
Beispiel-Playbook
----------------
- hosts: servers
pre_tasks:
- name: Installationspakete installieren.
package:
name: "{{ item }}"
state: "present"
with_items:
- unzip roles:
- lrk.sonarqube
- name: Installationspakete installieren.
package:
name: "{{ item }}"
state: "present"
with_items:
```
Upgrade
Bitte testen Sie das Upgrade zuerst in einer Staging-Umgebung.
Der Prozess besteht aus den folgenden Schritten:
- Ändern Sie die Variable
sonar_version
. - Überprüfen Sie die Variable
sonar_plugins
gemäß https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/. - Führen Sie die Rolle über die vorhandene Installation aus. Ansible wird:
- den Installationsordner erstellen
- die Binärdateien von neuem SonarQube mit Plugins hier ablegen
- den derzeit laufenden Dienst stoppen
- die Konfigurationen aktualisieren
- den Dienst erneut starten
- sicherstellen, dass der Webdienst gestartet wurde und die SonarQube-Version in web.log erscheint
- sicherstellen, dass die laufende Sonar-Version mit der erwarteten übereinstimmt
- Anschließend müssen Sie http://yourSonarQubeServerURL/setup öffnen und den Anweisungen folgen, wie in https://docs.sonarqube.org/latest/setup/upgrading/ beschrieben (die Rolle hinterlässt eine Erinnerung dafür).
Bitte beachten Sie:
- Die Rolle sichert die Datenbank nicht
- Die Rolle vergleicht keine Versionen. Bitte vermeiden Sie versehentliche Downgrades
- Die Rolle entfernt den Ordner mit der vorherigen Installation nicht, sodass nach dem Upgrade der Pfad, der in der Variable
sonar_install_directory
angegeben ist, mehr als einsonar_base_dir
enthalten wird.
Referenzen
Autoreninformation
Diese Rolle wurde von Lrk erstellt.
An Ansible Role that install SonarQube.
ansible-galaxy install lrk.sonarqube