一、环境
- 必要环境
注意:需要Jdk11、PostgreSQL数据库支持,同时必须确保最低环境要求
- 官网地址:https://www.sonarqube.org/downloads/
- 选择的是长期支持版,以下是支持的版本
二、安装JDK11
详细见之前博客安装jdk
三、安装PostgreSQL12
- 官方地址:
https://www.postgresql.org/download/linux/redhat/ - 官网给出的安装步骤
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
- 配置防火墙
# 查询5432端口是否开放
firewall-cmd --query-port=5432/tcp
# 开放5432端口(5432为PostgreSQL端口)
firewall-cmd --zone=public --add-port=5432/tcp --permanent
# 重启
firewall-cmd --reload
# 查看防火墙是否放行5432端口在这里插入代码片
firewall-cmd --zone=public --list-ports
- 初始化用户名密码
# 切换用户,执行后提示符会变为'-bash-4.2$'
su - postgres
# 登录数据库,执行后提示符变为 'postgres=#'
psql -U postgres
# 设置密码,设置postgres用户密码为postgres
ALTER USER postgres WITH PASSWORD 'postgres';
ALTER USER postgres WITH PASSWORD '密码';
# 退出数据库
\q
# 备注其他:列出所有库\l 列出所有用户\du 列出库下所有表\d
# 登出
exit
- 创建sonarquebe的数据库密码
注:我这里数据库名,用户名密码的都是sonarqube
create user sonarqube with password 'sonarqube';
create database sonarqube owner sonarqube encoding='UTF8';
grant all on database sonarqube to sonarqube;
- 修改配置文件
切换到root用户
vim /var/lib/pgsql/12/data/postgresql.conf
添加一行
修改配置文件pg_hba.conf文件
vim /var/lib/pgsql/12/data/pg_hba.conf
# 修改如下内容,信任指定服务器连接
# 如果想允许所有IPv4地址,则加入一行host all all 0.0.0.0/0 md5。IPv6方法类似。
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
重启postgresql systemctl restart postgresql-12
最后利用navicat工具进行测试是否连接成功
四、安装SonarQube前准备
- 添加sonarqube系统用户
# 创建用户组
groupadd sonarqube
# 创建用户
useradd sonarqube -g sonarqube
# 设置密码
passwd sonarqube //设置2次同样的密码
- 增大文件打开数
# 修改limits.conf文件
vim /etc/security/limits.conf
# 插入内容
sonarqube soft nofile 131072
sonarqube hard nofile 131072
sonarqube soft nproc 8192
sonarqube hard nproc 8192
- 修改内核参数
# 修改sysctl.conf文件
vim /etc/sysctl.conf
# 插入内容
vm.max_map_count = 524288
fs.file-max = 131072
# 输入命令:sysctl -p,使/etc/sysctl.conf配置文件立即生效。
sysctl -p
- 配置防火墙
# 查询9000端口是否开放
firewall-cmd --query-port=9000/tcp
# 开放9000端口(9000为SonarQube端口)
firewall-cmd --zone=public --add-port=9000/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看防火墙是否放行9000端口
firewall-cmd --zone=public --list-ports
五、安装sonarqube
- 将安装包放到/home/sonarqube/下
- 解压缩
unzip sonarqube-8.9.8.54436.zip -d /opt/
- ln -s /opt/sonarqube-8.9.8.54436/ /opt/sonarqube
- 创建持久数据文件和临时文件的路径
# 创建文件夹
mkdir -p /var/sonarqube/data
mkdir -p /var/sonarqube/temp
# 授权
chown -R sonarqube: /opt/sonarqube/
chown -R sonarqube:sonarqube /var/sonarqube/data
chown -R sonarqube:sonarqube /var/sonarqube/temp
- 修改sonar.properties核心配置文件
vim /opt/sonarqube/conf/sonar.properties
# 修改内容如下:
# User credentials.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
# PostgreSQL 9.3 or greater
sonar.jdbc.url=jdbc:postgresql://172.16.40.23:5432/sonarqube
# WEB SERVER
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=172.16.40.23
sonar.web.context=/sonarqube
sonar.web.port=9000
# OTHERS
sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
- 修改wrapper.conf核心配置文件
vim /opt/sonarqube/conf/wrapper.conf
- 切换sonarqube用户启动程序
# 切换sonarqube用户
su - sonarqube
cd /opt/sonarqube/bin/linux-x86-64
# 启动sonarqube程序
./sonar.sh start
# 其他命令
Usage: ./sonar.sh { console | start | stop | force-stop | restart | status | dump }
- 进入web浏览器
http://172.16.40.23:9000/sonarqube/
初始账号密码都是admin
- 编写开机自启动脚本
# 创建开机自启动调用文件
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=131072
LimitNPROC=8192
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable sonarqube.service
reboot
- 安装中文插件
六、整合到Jenkins
-
jenkins下载插件
-
配置jenkins
-
sonarqube生成socket
-
项目添加