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にアクセスします。