lrk.sonarqube
Ansibleロール: SonarQube (lrk.sonarqube)
SonarQubeをインストールするためのAnsibleロールです。
対応OS
このロールは以下のOSでテストされています。
- EL - 7
- Debian - Stretch
要件
SonarQubeの要件は以下のとおりです:
- Oracle JRE 11以降またはOpenJDK 11以降があなたのマシンにインストールされていること。
本番環境では、sonar_db_embedded
変数をfalseに設定し、sonar_db_*変数を構成することを忘れないでください。
SonarQubeは以下のデータベースをサポートしています: MySQL、Oracle、PostgreSQL、Microsoft SQLServer。
詳細については、SonarQubeの要件を参照してください。
SonarQubeプラグインのインストール
このロールは、"SonarQubeにプラグインをインストールする"手順に基づいたプラグインのインストールをサポートしています。マーケットプレイスと手動の両方の方法がサポートされています。
このロールは、以前にインストールしたプラグインの処理は行いません。 以前のバージョンは自分で削除する必要があります。
プラグインをインストールするには、sonar_plugins
辞書にプラグインをリストしてください。以下のオプションが利用可能です:
name
: プラグイン名。マーケットプレイスプラグインの場合は、こちらのプラグインのマニフェスト(json)の名前である必要があります。手動プラグインの場合は、こちらのプラグインフォルダの名前を指定するか、url
オプションを提供します(下記参照)。version
: プラグインのバージョン。commercial
: 商用プラグインかどうか(実際には別のダウンロード場所が必要); 手動プラグインにのみ意味があります。url
: プラグインのjarファイルへのリンク。提供された場合、ロールはプラグインを探さずこのリンクを使用します。マーケットプレイスプラグインには意味がありません。marketplace
: 手動プラグインかマーケットプレイスプラグインか。デフォルトはfalseです。
例:
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
ローカルでVagrantを使ったテスト方法
- VagrantとVirtualBoxをインストールします。
- virtualenvを初期化し、要件をセットアップします。例えば:
python -m venv ~/.virtualenvs/molecule
. ~/.virtualenvs/molecule/bin/activate
pip install -r molecule/vagrant/requirements.txt
- テストを実行します(デフォルトでCentOSボックスが使用されます):
molecule test -s vagrant
- (オプショナル)別のOS(この場合はubuntu)のテストを実行します:
MOLECULE_DISTRO=ubuntu/trusty64 molecule test -s vagrant
ロール変数
使用可能な変数とデフォルト値は、以下にリストされています(defaults/main.yml
を参照)
---
---
# ansible-role-sonarqube/のデフォルトファイル
# SonarQubeのインストールディレクトリ
sonar_install_directory: /opt/sonarqube
# SonarQubeの基本ディレクトリ
sonar_base_dir: "{{ sonar_install_directory }}/sonarqube-{{ sonar_version }}"
# SonarQubeデーモンディレクトリ
sonar_daemon_dir: "{{ sonar_base_dir }}/bin/linux-x86-{{ ansible_userspace_bits }}"
# SonarQubeの設定ディレクトリ
sonar_conf_dir: "{{ sonar_base_dir }}/conf"
sonar_logs_dir: "/var/log/sonarqube"
# 永続データファイルのパス(埋め込みデータベースと検索インデックス)
sonar_data_dir: "{{ sonar_base_dir }}/data"
# 一時ファイルのパス
sonar_temp_dir: "{{ sonar_base_dir }}/temp"
# インストールするSonarQubeのバージョン
sonar_version: 5.6.7
# SonarQubeのシステムグループ
sonar_group: sonar
# SonarQubeのシステムユーザー
sonar_user: sonar
# SonarQubeサービスのLimitNOFILEパラメータ
sonar_limitnofile: 65536
# インストールするSonarQubeプラグイン(上記の詳細を参照)
sonar_plugins: []
# 組み込みH2データベースを使用するかどうか。本番環境では使用しないでください
sonar_db_embedded: true
sonar_db_embedded_port: 9092
# SonarQube JDBCの認証情報
sonar_db_user: ""
sonar_db_pass: ""
# SonarQube JDBC URL
sonar_jdbc_url: ""
# SonarQube JDBCの最大アクティブ接続数
sonar_jdbc_maxactive: 60
# プール内で待機できる最大接続数
sonar_jdbc_maxidle: 5
# プール内で待機できる最小接続数
sonar_jdbc_minidle: 2
# 接続が返されるまでの最大待機時間(ミリ秒)
sonar_jdbc_maxwait: 5000
sonar_jdbc_min_evictable_idle_time_millis: 600000
sonar_jdbc_time_between_eviction_runs_millis: 30000
# SonarQube Webサーバーの設定
sonar_web_java_opts: ""
# バインディングIPアドレス
sonar_web_host: 0.0.0.0
# TCPポート
sonar_web_port: 9000
# 最大接続数
sonar_web_http_max_threads: 50
# 最小スレッド数
sonar_web_http_min_threads: 5
# TCPポート
sonar_search_port: 9001
# Elasticsearchホスト
sonar_search_host: 127.0.0.1
# -----------------------------
# 更新センター
sonar_updatecenter_activate: true
http_proxy_host: ""
http_proxy_port: ""
# -----------------------------
# ロギング
sonar_log_level: "INFO"
sonar_log_rolling_policy: "time:yyyy-MM-dd"
sonar_log_max_files: 7
# -----------------------------
# LDAP
# Ldap設定(こちらを参照)
sonar_ldap:
# -----------------------------
# 他
sonar_notifications_delay: 60
sonar_additional_properties: {}
# -----------------------------
# デフォルト内部値の上書き
sonar_download_url: "https://your_url"
sonar_plugin_baseurl: "https://your_url"
sonar_commercial_plugin_baseurl: "https://your_url"
# -----------------------------
# 開発 - 開発者のみ使用
sonar_web_dev: false
sonar_web_dev_sources: ""
依存関係
直接の依存関係はありません。最初にJDKをインストールする必要があります。
例プレイブック
- hosts: servers
pre_tasks:
- name: パッケージの依存関係をインストールします。
package:
name: "{{ item }}"
state: "present"
with_items:
- unzip
roles:
- lrk.sonarqube
アップグレード
最初にステージング環境でアップグレードをテストしてください。
プロセスは以下のステップで構成されます:
sonar_version
の変数を変更します。- SonarQubeのプラグインバージョンマトリックスに従って
sonar_plugins
の変数をレビューします。 - 既存のインストールに対してロールを実行します。Ansibleは以下を行います:
- インストールフォルダを作成します。
- 新しいSonarQubeとプラグインのバイナリを配置します。
- 現在実行中のサービスを停止します。
- 設定を更新します。
- サービスを再起動します。
- Webサービスが起動し、SonarQubeのバージョン番号がweb.logに表示されていることを確認します。
- 実行中のSonarQubeのバージョンが期待されるものであることを確認します。
ご注意ください:
- ロールはデータベースのバックアップを行いません。
- ロールはバージョンを比較しません。誤ってダウングレードしないようにしてください。
- ロールは以前のインストールのフォルダを削除しないため、アップグレード後、
sonar_install_directory
変数に指定されたパスには複数のsonar_base_dir
が含まれることになります。
ライセンス
Apache License Version 2.0
参考文献
著者情報
このロールはLrkによって作成されました。
インストール
ansible-galaxy install lrk.sonarqube
ライセンス
apache-2.0
ダウンロード
103.5k
所有者