CentOS7にSonarQubeをインストールしアクセス確認まで

CentOS7にSonarQubeをインストールしアクセス確認まで

概要

sonarqube
Java, Python, Ruby, PHP 等、複数言語のコードメトリクス集計ができる
優れものです。

以前 MacOSX ローカル環境で
Unity プロジェクト C#コードのコードメトリクス抽出方法をまとめました。

今回は CentOS7 上に構築する方法を以下にまとめました。

環境

  • CentOS7 64bit
  • Java 1.8
  • ec2 t.micro

JDK インストール

1
2
# cd /usr/local
# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz"
1
# tar xvf jdk-8u45-linux-x64.tar.gz
1
# ln -s jdk1.8.0_45 latest

環境変数 JAVA_HOME 設定

.bash_profile での設定ではユーザにより環境変数が異なるので
全ユーザ共通で設定する場合は /etc/profile.d/ 以下に shell を用意する。

1
2
3
4
5
# echo "export JAVA_HOME=/usr/local/java/latest
export PATH=$PATH:$JAVA_HOME/bin" > /etc/profile.d/javaenv.sh

# echo "export JAVA_HOME=/usr/local/java/latest
export PATH=$PATH:$JAVA_HOME/bin" > /etc/profile.d/javaenv.csh

MySQL インストール

今回は同一サーバに MySQL インストールしています。
別途 MySQL サーバを立てる場合は不要です。

1
2
3
4
5
6
7
8
9
10
11
12
13
# yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# yum -y install mysql-community-server
# chown -R mysql:mysql /var/lib/mysql/*
# systemctl start mysqld
# chkconfig mysqld on

// 以下 DB名: sonar, DB User: sonar, DB Pass: sonar で設定
# mysql -u root

mysql> CREATE DATABASE sonar;
mysql> CREATE USER 'sonar'@'localhost' IDENTIFIED by 'sonar';
mysql> GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost';
mysql> FLUSH PRIVILEGES;

SonarQube インストール

以下サイトにてダウンロード zip を取得します。
SonarQube Donwloads

Imgur

※ 2016-05-19 時点 最新は ver 5.5

1
2
3
4
5
# mkdir /usr/local/sonarqube
# cd /usr/local/sonarqube
# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.5.zip
# unzip sonarqube-5.5.zip
# ln -s sonarqube-5.5 sonar

環境変数 SONAR_HOME 設定

1
2
3
4
5
# echo "setenv SONAR_HOME=/usr/local/sonarqube/sonar
setenv PATH=$PATH:$SONAR_HOME/bin/linux-x86-64" > /etc/profile.d/sonarenv.sh

# echo "setenv SONAR_HOME=/usr/local/sonarqube/sonar
setenv PATH=$PATH:$SONAR_HOME/bin/linux-x86-64" > /etc/profile.d/sonarenv.csh

SonarQube から MySQL を利用できる様に設定

以下ファイルを編集し作成した DB にアクセスできるように設定します。

  • /usr/local/sonarqube/sonar/conf/sonar.properties
1
2
3
sonar.jdbc.username=sonar # DB User
sonar.jdbc.password=sonar # DB Password
sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar # DB url

SonarQube が利用する java コマンド設定

以下ファイルを編集し SonarQube が利用する java コマンドを
インストールした JDK 内の java を指定するように変更

  • /usr/local/sonarqube/sonar/conf/wrapper.conf
1
2
#wrapper.java.command=java
wrapper.java.command=/usr/local/java/latest/bin/java

SonarQube 起動スクリプト設定

1
2
3
# ln -s /usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh /etc/init.d/sonar
# chkconfig --add sonar
# chkconfig sonar on

サーバ再起動

/etc/profile.d に設定した 環境変数を反映させるべくサーバ再起動します。

1
# reboot

アクセスして確認

http://<IPアドレス>:9000

SonarQube 管理ページが表示されれば OK です!

再起動後アクセスできない場合

SonarQube の設定を見直すか、もしくは、

今回利用している ec2 t2.micro のような小メモリの場合
メモリ不足で MySQL が落ちる可能性があります。

以下参照して対応してください。

あとがき

どんなプロジェクトでもここ修正したい!
と思うことは多々あるかと思います。

その際、なんとなくここ使いづらいから直そう!
という曖昧な判断ではなく

先立ってまず全体としてどういう状態にあるか、
を数値でみて判断する、

というプロセスが踏めるようになることを目的に導入しました。

次回は Jenkins からの実行方法をまとめます。

CentOS7にSonarQubeをインストールしアクセス確認まで

https://kenzo0107.github.io/2016/05/18/2016-05-19-install-sonarqube-on-centos7/

Author

Kenzo Tanaka

Posted on

2016-05-19

Licensed under

コメント