記載する予定のもの
- 概要
- インストール方法(CentOS 7にSonarQubeを立ち上げる)(今回)
- Maven、Jenkinsを使用してCIに組み込む
- SonarQubeで行った品質レポートの見方
- SonarQubeのバージョンアップ方法
前回、
SonarQubeでプログラムの品質管理をはじめる(概要)
でSonarQubeの概要に触れました。
今回はSonarQUbeのインストールをして、SonarQubeのWEBページが開くところまでを書きます。
インストール環境
OSはCentOS 7(minimal)を使います。
CentOS 7の立ち上げ方は以下を参照してください。
インストール
入れるもの
- SonarQube 5.1
- MySQL5.6
- Java jdk 1.8
補足
Linux + SonarQube5.1でインストール手順を書きますが、
バイナリインストールのため、SonarQubeのバージョンが上がっても方法は変わりません。
また、Windows環境へのインストールについても、
環境変数の設定周りをWindowsの方法で置き換えてあげればインストールをできるはずです。
インストール手順
- 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を作成し中身は以下とします。
export JAVA_HOME=/usr/local/java/latest
export PATH=$PATH:$JAVA_HOME/bin
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を作成し中身は以下とします。
export SONAR_HOME=/usr/local/sonarqube/sonar
export PATH=$PATH:$SONAR_HOME/bin/linux-x86-64
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.jdbc.username
sonar.jdbc.password
sonar.jdbc.url
serviceから起動できるように、"/usr/local/sonarqube/sonar/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
- ファイアウォールの設定
すべて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のトップページが開きます。
トップページが表示されればインストールは完了です。
http://{SonarQUbeをインストールした端末のIPアドレス}:9000
追記(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