安装 SonarQube
环境
系统
CentOS 7
数据库
postgresql 10
系统配置
查看系统配置
sysctl vm.max_map_count
sysctl fs.file-max
ulimit -n
ulimit -u
如果不满足需求,使用下面命令修改(下面是最低参数配置)
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096
需要注意,使用上边的命令修改系统参数,重启后将失效
如果 vm.max_map_count
达不到要求,在 /etc/sysctl.conf
添加以下内容,将永久修改配置
vm.max_map_count=262144
安装数据库
安装 参考官网安装步骤
内网安装需要提前下载 RPM 包
pgdg-redhat-repo-latest.noarch.rpm
postgresql10-10.13-1PGDG.rhel7.x86_64.rpm
postgresql10-libs-10.13-1PGDG.rhel7.x86_64.rpm
postgresql10-server-10.13-1PGDG.rhel7.x86_64.rpm
安装步骤
# 使用本地 RPM 包安装数据库
rpm -ivh ./*
# 初始化数据库
/usr/pgsql-10/bin/postgresql-10-setup initdb
# 设置为系统服务并启动
systemctl enable postgresql-10
systemctl start postgresql-10
编辑 /var/lib/pgsql/10/data/pg_hba.conf
将其中两行的 ident
改成 md5
md5 是密码认证
修改前:
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
修改后:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
重启数据库,此时数据库的安装结束
systemctl restart postgresql-10.service
创建 sonarqube 数据库
登陆
# 切换 postgres 用户
su - postgres
# 登陆
psql
创建用户
-- 创建用户 sonarqube,密码 sonarqube
CREATE USER sonarqube WITH PASSWORD 'sonarqube';
-- 创建数据库 sonarqube
CREATE DATABASE sonarqube OWNER sonarqube ENCODING 'UTF8';
-- 授权
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
创建完毕,执行 q
退出
q
验证一下创建的用户是否可用
# -h host
# -p 端口
# -d 数据库
# -U 用户
# -W 强制密码提示
psql -h 127.0.0.1 -p 5432 -d sonarqube -U sonarqube -W
输入密码,登录成功,数据库创建完毕
安装 JDK
sonarqube-8.3.1.34397
需要 jdk 11+
/opt/jdk
下解压 jdk-14.0.1_linux-x64_bin.tar.gz
创建用户和用户组
sonarqube 必须使用非 root 用户
groupadd sonarqube
useradd -g sonarqube sonarqube
安装 SonarQube
创建安装目录,并授权
mkdir /opt/sonarqube
chown sonarqube:sonarqube /opt/sonarqube
切换用户
su sonarqube
sonarqube-8.3.1.34397.zip
解压至 /opt/sonarqube
目录
修改数据库配置 ${sonarqube_install}/conf/sonar.properties
,根据实际修改
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube?useUnicode=true&characterEncoding=utf8
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
默认端口为 9000
在 ${sonarqube_install}/conf/sonar.properties
中修改端口
sonar.web.port=9001
注意,因为用的非 root 用户,所以不能使用 1024 以下的端口
注意,如果使用域名或使用了 Nginx,要在控制台中设置真实的访问地址,位置在 配置-->配置-->通用配置-->通用-->Server base URL
接下来,将 sonarqube 设置为系统服务
创建文件 /etc/systemd/system/sonarqube.service
ExecStart
根据实际情况修改 jdk 目录和 sonar-application-{version}.jar 文件路径
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/bin/nohup /opt/java/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-7.4.jar
StandardOutput=syslog
LimitNOFILE=65536
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
设置开机启动
systemctl enable sonarqube.service
启动服务
systemctl start sonarqube.service
修改主机名
hostnamectl set-hostname sonarqube
日志在 ${sonarqube_install}/logs
目录下
安装中文语言包(可选)
中文插件 sonar-l10n-zh-plugin-8.3.jar
放在 ${sonarqube_install}/extensions/plugins
目录,重启 sonarqube 即可