Help us understand the problem. What is going on with this article?

SonarQubeでプログラムの品質管理をはじめる(インストール)

More than 1 year has passed since last update.

記載する予定のもの

前回、
SonarQubeでプログラムの品質管理をはじめる(概要)
でSonarQubeの概要に触れました。
今回はSonarQUbeのインストールをして、SonarQubeのWEBページが開くところまでを書きます。

インストール環境

OSはCentOS 7(minimal)を使います。
CentOS 7の立ち上げ方は以下を参照してください。

CentOS7のインストール方法

インストール

入れるもの

  • SonarQube 5.1
  • MySQL5.6
  • Java jdk 1.8

補足

Linux + SonarQube5.1でインストール手順を書きますが、
バイナリインストールのため、SonarQubeのバージョンが上がっても方法は変わりません。
また、Windows環境へのインストールについても、
環境変数の設定周りをWindowsの方法で置き換えてあげればインストールをできるはずです。

インストール手順

  1. Javaのインストール
    以下のコマンドでjdkをダウンロード
コマンド
# 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"

ダウンロードが終わったら"/usr/local/java"にファイルを移動し、解凍します。

コマンド
# tar xvf jdk-8u45-linux-x64.tar.gz

シンボリックリンクを当てておきます。

コマンド
# ln -s jdk1.8.0_45 latest

環境変数にJAVA_HOMEを設定します。
/etc/profile.dにjavaenv.shとjavaenv.cshを作成し中身は以下とします。

javaenv.sh
export JAVA_HOME=/usr/local/java/latest
export PATH=$PATH:$JAVA_HOME/bin
javaenv.csh
setenv JAVA_HOME=/usr/local/java/latest
setenv PATH=$PATH:$JAVA_HOME/bin

 
2. MySQLのインストール

MySQLはyumでサクッとインストールしてしまいます。

コマンド
# 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/*
# chkconfig mysqld on

 
3. SonarQubeのインストール

以下のコマンドでダウンロードします。

コマンド
# wget "http://dist.sonar.codehaus.org/sonarqube-5.1.zip"

ダウンロードが終わったらファイルを"/usr/local/sonarqube"に移動して解凍します。

コマンド
# unzip sonarqube-5.1.zip
シンボリックリンクも当てておきます。
# ln -s sonarqube-5.1 sonar

環境変数にSONAR_HOMEを設定します。
/etc/profile.dにsonarenv.shとsonarenv.cshを作成し中身は以下とします。

sonarenv.sh
export SONAR_HOME=/usr/local/sonarqube/sonar
export PATH=$PATH:$SONAR_HOME/bin/linux-x86-64
sonarenv.csh
setenv SONAR_HOME=/usr/local/sonarqube/sonar
setenv PATH=$PATH:$SONAR_HOME/bin/linux-x86-64

mysqlを使用するようにSonarの設定を書き換えます。
"/usr/local/sonarqube/sonar/conf/sonar.properties"を編集します。

sonar.properties
以下プロパティのコメントを削除して有効にする。
sonar.jdbc.username
sonar.jdbc.password
sonar.jdbc.url

serviceから起動できるように、"/usr/local/sonarqube/sonar/conf/wrapper.conf"を編集します。

wrapper.conf
wrapper.java.command=java を以下に変更
wrapper.java.command=/usr/local/java/latest/bin/java

SonarQubeをサービスに追加して、自動起動の登録をします。

コマンド
# ln -s /usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh /etc/init.d/sonar
# chkconfig --add sonar
# chkconfig sonar on

  1. ファイアウォールの設定 すべてdefaultなので以下のポートに穴を開けます。
ソフト ポート
MySQL 3306
SonarQube 9000
コマンド
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --zone=public --add-port=9000/tcp --permanent

 
5. MySQLにユーザ作成
MySQLにsonar用のユーザを作成します。
mysqlのrootユーザでMySQLにログインして以下のコマンドを実行します。

コマンド
CREATE DATABASE sonar;
CREATE USER 'sonar'@'localhost' IDENTIFIED by 'sonar';
GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost';
FLUSH PRIVILEGES;

色々と変えたのでLinuxを再起動しなおします。
再起動したら、ブラウザから以下にアクセスすればSonarQubeのトップページが開きます。
トップページが表示されればインストールは完了です。

URL
http://{SonarQUbeをインストールした端末のIPアドレス}:9000

以下のような画面が出ます。
sonar-top-page.png

追記(2018/7/23)

なんか、chkconfigから外れて起動しなくなった。

service sonar does not support chkconfig

環境

Amazon Linux AMI
sonarqube-6.3.1

対処方法

このページ、CentOSで説明してるけど、同じ症状出て詰まったら、試してみてください。

/etc/ini.d/sonarの先頭に以下を追加

#! /bin/sh
# chkconfig: 345 98 20
# description: start SonarQUbe
# processname: sonar

あとは、

# chkconfig --add sonar
# chkconfig sonar on
# service sonar start

すればOK

sh-ogawa
IoT有段者(IoT検定プロフェッショナル・コーディネータ) いまWEB屋 私の発言は個人的な考えのもので、所属組織を代表するものではないです。
http://syogo0417.hatenablog.com/
visor
自治体・官公庁向けに地域への情報発信サービスの提供・運用をするサービス会社です。
https://www.visor.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away