CentOS7 安装 SonarQube 安装 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 即可