JavaやC、PHPやPythonなど複数言語のソースを統合管理できるツール『SonarQube』なるものを知ったので、試しにCentOS 7にインストールしてみることにする。
『SonarQube』については、以下の概要が詳しい。
なお、すでにSELinux/Firewalldについては停止・無効化しているものとする。
1.前提パッケージの導入
『SonarQube』では、JavaとPostgreSQL(MariaDBはサポート外だが、MySQLも利用できる)を使うのでそれらを導入する。 まず、以下のコマンドでJava1.8のインストールを行う。
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm"
rpm -ihv jdk-8u112-linux-x64.rpm
次に、以下のコマンドでPostgreSQLのインストールを行う。
rpm -ihv https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum -y group install "PostgreSQL Database Server 9.5 PGDG"
/usr/pgsql-9.5/bin/postgresql95-setup initdb
systemctl start postgresql-9.5
systemctl enable postgresql-9.5
PostgreSQLのインストール後、以下のコマンドでSonarQubeで使うユーザおよびデータベースを作成する。
sudo -u postgres psql -c "
create user sonar;
alter role sonar with createdb;
alter user sonar with encrypted password 'P@ssw0rd';
"
sudo -u postgres psql -c "create database sonar owner sonar;"
sudo -u postgres psql -c "
grant all privileges on database sonar to sonar;
alter user postgres password 'P@ssw0rd';
"
sed -e '/^#/! s/ident/md5' \
-e '/^#/! s/peer/md5' \
-i.bk /var/lib/pgsql/9.5/data/pg_hba.conf
systemctl restart postgresql-9.5
2.SonarQube 6.1のインストール
次に、SonarQubeのインストールを行う。
以下のコマンドでSonarQubeのダウンロードと配置をする。
mkdir -p /usr/local/sonarqube
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.1.zip -O /usr/local/sonarqube/sonarqube-6.1.zip
unzip /usr/local/sonarqube/sonarqube-6.1.zip -d /usr/local/sonarqube/
ln -s /usr/local/sonarqube/sonarqube-6.1 /usr/local/sonarqube/sonar
次に、設定ファイルにSonarQubeのDB接続情報を記述する。
項目はすべてコメントアウトされているので、sedで書き換えてやる。
sed -e '/^#sonar.jdbc.username/c sonar.jdbc.username=sonar' \
-e '/^#sonar.jdbc.password/c sonar.jdbc.password=P@ssw0rd' \
-e '/^#sonar.jdbc.url=jdbc:postgresql:\/\/localhost\/sonar/s/^#//' \
-i.bk /usr/local/sonarqube/sonar/conf/sonar.properties
設定ファイル編集後、以下のコマンドでSonarQubeを起動する。
/usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh start
[root@BS-PUB-WEBTOOL-TEST01 ~]# /usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh status
SonarQube is running (5892).
これでインストール完了。
最後に、自動起動設定をしておく。
useradd sonar
chown -R sonar. /usr/local/sonarqube/
cat <<EOF > /etc/systemd/system/sonar.service
[Unit]
Description=SonarQube
After=network.target network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh start
ExecStop=/usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh stop
ExecReload=/usr/local/sonarqube/sonar/bin/linux-x86-64/sonar.sh restart
Type=forking
User=sonar
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable sonar
systemctl start sonar
これでインストールは完了。
3.ブラウザからアクセスする
Webコンソール用に9000番ポートが開いているので、そこからアクセスする。
無事、アクセスすることができた。
本来は単体で利用するものではなく、CIなどと組み合わせて利用するものなので、次回以降にそのあたりに触れていきたい。
なお、右上のログインから初期ID/PW(admin/admin)でログインすることで、アドオンなどをインストールすることができる。