51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux安装与部署SonarQube

【前言】

随着项目团队规模日益壮大,项目代码量也越来越多。且不说团队成员编码水平层次不齐,即便是老手,也难免因为代码量的增加和任务的繁重而忽略代码的质量,最终的问题便是bug的增多和代码债务的堆积。因此,代码review便日益提上了日程。当然人工review的效率还是相当低下的,于是我们采用了自动化代码review的工具,便是今天的主角:SonarQube。

SonarQube 简介

SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

  • SonarQube集成gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。
  • SonarQube集成jenkins,在代码构建的时候自动进行代码分析,生成代码报告。

总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

官方网站:https://www.sonarqube.org/
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

SonarQube 支持的数据库有:PostgreSQL,Microsoft SQL Server,Oracle,注意7.9版本已经不对MySql进行官方的支持了,如果执意要用Mysql可能会遇到很多坑。当然有的朋友想用Mysql数据库,那么可以选择安装7.7以下版本(包括7.7)。
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

SonarQube 运行需要ES(ElasticSearch),当然这个不用我们安装,下载的安装包已经包含了ES。
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

因为我用到了Mysql数据库,综合软硬件说明我选择了7.7版本的SonarQube进行下载安装。
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

本文下载的版本是Sonarqube-7.7
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip(187.71MB)
文章源自小柒网-https://www.yangxingzhen.cn/7262.html

文章源自小柒网-https://www.yangxingzhen.cn/7262.html

SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。
文章源自小柒网-https://www.yangxingzhen.cn/7262.html
1、下载SonarQube安装

[root@Zabbix ~]# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip

2、解压SonarQube安装

[root@Zabbix ~]# unzip sonarqube-7.7.zip

[root@Zabbix ~]# mv sonarqube-7.7 /usr/local/sonarqube

  • bin目录存放了各个环境的启动脚本
  • conf目录存放着sonarqube的配置文件
  • logs目录存放着启动和运行时的日志文件

3、配置SonarQube

我们首先需要通过配置文件修改sonarqube的Mysql连接字符串等信息,打开conf目录的sonar.properties

[root@Zabbix ~]# vim /usr/local/sonarqube/conf/sonar.properties

sonarqube web 默认端口号为9000如果想修改成其他端口可以通过下面这个设置修改其他端口号。

sonar.jdbc.url=jdbc:mysql://172.168.1.14:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&maxAllowedPacket = 16777216&useSSL=false
sonar.jdbc.username=sonarqube
sonar.jdbc.password=123456

wrapper.conf这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等

注:Mysql版本需大于或等于5.6且小于8.0

4、创建数据库及授权

mysql> create database sonarqube;

mysql> grant all on sonarqube.* to sonarqube@'%' identified by '123456';

mysql> flush privileges;

5、启动SonarQube

启动需要授权给一个非root的用户,sonarqube及其es等软件禁止root账户启动,因此需要切换一个非root账户,授权的用户需要有bin目录及其子目录的读取和可执行的权限。

然后我们找到对应平台的脚本,我的系统是64位的linux,进入linux-x86-64目录

授权

[root@Zabbix ~]# chown -R admin.admin /usr/local/sonarqube

启动

[root@Zabbix ~]# su - admin

[admin@Zabbix ~]$ /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start

查询端口

[admin@Zabbix ~]$ netstat -lntup

启动之后,我们浏览器访问对应服务器IP地址的9000端口(防火墙要提前放行9000端口)

如果没有成功,那么就在logs目录查看启动日志。一般有几种:

1)es.log # ES或Mysql等数据库连接报错,一般是Mysql的连接字符串账号密码错误或者sonar账号权限不够;

2)es.log # 数据库初始化失败MySQL sonar账户权限不足

3)sonar.log # sonar服务的启动日志

4)web.log # sonarqube web的启动日志

6、访问SonarQube

默认账号密码admin

登录后界面

7、中文汉化

如果看不惯英文界面,那么就先装个中文插件吧。

注:这个中文插件我是没安装成功,我们可通过访问插件地址下载对应版本(版本不兼容会启动失败)

Github地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases

找到对应版本

下载地址:https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.27/sonar-l10n-zh-plugin-1.27.jar

把下载好的插件上传到plugins目录下,我这里的地址是/usr/local/sonarqube/extensions/plugins

8、重启SonarQube

[admin@Zabbix plugins]$ /usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart

9、访问SonarQube

到此为止,SonarQube的安装与配置便告一段落了,如果有任何问题欢迎留言区讨论
继续阅读 SonarQube最后更新:2023-8-21

赞(0)
未经允许不得转载:工具盒子 » Linux安装与部署SonarQube