lrk.sonarqube

Ansible-Rolle: SonarQube (lrk.sonarqube)

Molecule Galaxy Ansible Ansible Ansible

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 Option url 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

  1. Installieren Sie Vagrant und VirtualBox.
  2. 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
  1. Führen Sie Tests durch (Standardmäßig wird eine CentOS-Box verwendet):
molecule test -s vagrant
  1. (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

```

Upgrade

Bitte testen Sie das Upgrade zuerst in einer Staging-Umgebung.

Der Prozess besteht aus den folgenden Schritten:

  1. Ändern Sie die Variable sonar_version.
  2. Überprüfen Sie die Variable sonar_plugins gemäß https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/.
  3. 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
  1. 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 ein sonar_base_dir enthalten wird.

Referenzen

Autoreninformation

Diese Rolle wurde von Lrk erstellt.

Über das Projekt

An Ansible Role that install SonarQube.

Installieren
ansible-galaxy install lrk.sonarqube
Lizenz
apache-2.0
Downloads
103.5k
Besitzer