Debian 11にOSSのコード品質管理ツールSonarQube9.3をインストールする

環境
Debian 11.2

SonarQubeのインストール方法

1.システムパッケージと必要なツールを更新します

# sudo apt update
# sudo apt install net-tools wget unzip vim curl

2.メモリマップの数の上限を設定します

# sudo vim /etc/sysctl.conf

下記の内容で編集します

vm.max_map_count=262144
fs.file-max=65536

sysctl配置内容をリロードします

# sudo sysctl --system

3.Java11をインストールします

# sudo apt install openjdk-11-jdk
# java --version
openjdk 11.0.14 2022-01-18
OpenJDK Runtime Environment (build 11.0.14+9-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.14+9-post-Debian-1deb11u1, mixed mode, sharing)

4.PostgreSQLをインストールします

# wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

PostgreSQLリポジトリを追加します

# sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

APT packageインデックスを更新します

# sudo apt update

PostgreSQLをインストールします

# sudo apt install postgresql postgresql-contrib

PostgreSQLのスタースを確認します

# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2022-03-25 04:52:03 JST; 3min 36s ago

PostgreSQL自動起動を設定します

# sudo systemctl enable postgresql
Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable postgresql

5.SonarQube用ユーザーを作成します

# sudo passwd postgres
新しい パスワード:
新しい パスワードを再入力してください:
passwd: パスワードは正しく更新されました

ユーザpostgresに切り替えます

# su - postgres
postgres@arkgame:~$ createuser sonar

PostgreSQLシェルに接続します

$ psql
psql (14.2 (Debian 14.2-1.pgdg110+1))
"help"でヘルプを表示します。

postgres=#

ユーザー「sonar」のパスワードを変更します。

postgres=# ALTER USER sonar WITH ENCRYPTED PASSWORD 'sonar123';
ALTER ROLE

データベース「sonarqube」を作成します。

postgres=# CREATE DATABASE sonarqube OWNER sonar;
CREATE DATABASE

ユーザー権限を付与します。

postgres=# GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;
GRANT
postgres=# \q

6.下記サイトから最新版SonarQubeをダウンロードします
https://www.sonarqube.org/downloads/

root@arkgame:~# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.3.0.51899.zip

ダウンロードファイルを解凍します。

root@arkgame:~# unzip sonarqube-*.zip
root@arkgame:~# sudo mv sonarqube-*/ /opt/sonarqube

7.SonarQubeのシステムユーザーアカウントを作成します

root@arkgame:~# sudo useradd -M -d /opt/sonarqube/ -r -s /bin/bash sonarqube

ディレクトリ/opt/sonarqubeの所有権を作成したユーザーに変更します。

root@arkgame:~# sudo chown -R sonarqube: /opt/sonarqube

8.SonarQubeを設定します

# sudo vim /opt/sonarqube/conf/sonar.properties
18~19行目

修正前
#sonar.jdbc.username=
#sonar.jdbc.password=
修正後
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar123

36行目

修正前
#sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=my_schema
修正後
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

101行目

修正前
sonar.web.host=0.0.0.0
修正後
sonar.web.host=192.168.71.144

9.SonarQube Systemdサービスファイルを作成します

# sudo vim /etc/systemd/system/sonarqube.service

下記内容で編集します

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
User=sonarqube
Group=sonarqube
Restart=always
LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target

10.sonarqubeを起動します
設定ファイルをリロードします

# sudo systemctl daemon-reload

sonarqubeを起動します

# sudo systemctl start sonarqube

sonarqube自動起動を設定します

# sudo systemctl enable sonarqube
Created symlink /etc/systemd/system/multi-user.target.wants/sonarqube.service → /etc/systemd/system/sonarqube.service.

sonarqubeのステータスを確認します。

# systemctl status sonarqube
● sonarqube.service - SonarQube service
Loaded: loaded (/etc/systemd/system/sonarqube.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-25 06:22:43 JST; 9s ago

SonarQube画面ログイン
ブラウザから http://プライベートIP:9000にアクセスします。

Debian 11

Posted by arkgame