Sonarqube 二进制的安装与简单使用

发布时间 2023-11-12 18:30:16作者: 济南小老虎

Sonarqube 二进制的安装与简单使用


背景

使用容器安装 sonarqube 发现无法使用PG数据库
尝试了很长时间没搞定
想了想还是使用 二进制的方式进行部署吧. 

下载

https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.2.1.78527.zip

这个应该是 2023.11 的最新版本
需要严格注意的是 这个版本必须使用 JDK 17/OpenJDK 17 的版本 其他低版本是不支持的. 

注意我将bsheng jdk 解压缩到了 /data/jdk 的目录下面, 便于进行使用. 

注意也需要下载 sonar-scanner
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip

我这边将 scanner 下载后放到了
/data/sonar-scanner中. 

chown sonar:sonar /data/sonar-scanner/ -R

数据库初始化

mkdir -p /data/lib/pgsql/12/sonarqube


CREATE ROLE "sonarqube" WITH ENCRYPTED PASSWORD 'Testxxxxxxxx';
ALTER ROLE "sonarqube" WITH LOGIN;
create tablespace sonarqube owner sonarqube location '/data/lib/pgsql/12/sonarqube';
CREATE DATABASE "sonarqube"
WITH
  OWNER = "sonarqube"
  TEMPLATE = "template0"
  ENCODING = 'UTF8'
  TABLESPACE = "sonarqube" ;

\c sonarqube ;
create schema sonarqube ;  

grant all PRIVILEGES  on database sonarqube to sonarqube with grant option;
grant all PRIVILEGES on tablespace sonarqube to sonarqube ;
grant all PRIVILEGES on schema sonarqube to sonarqube ; 
ALTER USER sonarqube SET search_path to sonarqube

修改配置文件

sonar.jdbc.username=sonarqube
sonar.jdbc.password=Testxxxxxxxx
sonar.jdbc.url=jdbc:postgresql://192.168.254.208/sonarqube?currentSchema=sonarqube

注意 应用的默认端口是 9000  elasticsearch的默认端口是9001 如果有冲突可以自行修改. 

启动sonarqube

useradd sonar
chown sonar:sonar /data/sonarqube -R 
su - sonar
cd /data/sonarqube/bin/linux-x86-64
我这边修改了一下这个脚本,便于启动,主要内容有
export SONAR_HOME=/data/sonarqube
export SONAR_RUNNER_HOME=/data/sonar-scanner
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
export PATH=$PATH:$SONAR_HOME/bin
export JAVA_HOME=/data/jdk
export PATH=$PATH:/$JAVA_HOME/bin


启动服务
./sonar.sh start
查看服务状态
./sonar.sh status 

修改密码以及汉化

使用默认密文登录就可以. 
admin/admin 
修改自己需要使用的密码

下载汉化 jar包:
https://github.com/xuhuisheng/sonar-l10n-zh/releases

将文件放置到: 
/data/sonarqube/extensions/plugins/
下面在启动服务
./sonar.sh restart

设置为服务启动

首先关闭服务,
/data/sonarqube/bin/linux-x86-64/sonar.sh stop 
然后

cat > /etc/systemd/system/sonar.service <<EOF
[Unit]
Description=Sonar Server
After=syslog.target network.target
 
[Service]
Type=forking
ExecStart=/data/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop= /data/sonarqube/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=4096
User=sonar
Group=sonar
Restart=always
 
[Install]
WantedBy=multi-user.target
EOF

systemctl enable --now sonar 

查看系统配置
http://192.168.254.217:19001/admin/system?expand=System
版本	10.2.1.78527