SonarQube系列(一)之Linux安装部署
前言
SonarQube® 是一种自动代码审查工具,用于检测代码中的错误,漏洞和多余的代码。它可以与您现有的工作流程集成,以便在项目分支和拉取请求之间进行连续的代码检查。比如:
SonarQube集成 gitlab,在分支推送的时候自动进行代码检查分析,生成代码报告。
SonarQube集成 jenkins,在代码构建的时候自动进行代码分析,生成代码报告。
总之,SonarQube是可以配合一切好用的CI/CD工具进行自动化分析代码并生成代码报告,通过报告我们可以看到代码中可能存在的bug和代码债务。
1.【SonarQube安装】
安装OpenJDK8
1.检查是否已安装JDK及卸载
yum list installed | grep [java][jdk]
2.卸载JAVA环境
yum -y remove java-1.6.0-openjdk* //表时卸载所有openjdk相关文件输入
yum -y remove tzdata-java.noarch //卸载tzdata-java
3.安装JDK
查看JDK软件包列表
yum search java | grep -i --color jdk
选择版本安装
yum install -y java-11-openjdk*
查看JDK是否安装成功
java -version
4.配置环境变量
1.JDK默认安装路径/usr/lib/jvm
ls /usr/lib/jvm
2.在/etc/profile 文件添加如下命令
1 |
|
3.保存 profile 文件,执行以下命令
source /etc/profile
4.使用如下命令,查看JDK变量
1 | echo $JAVA_HOME |
Sonar启动必须 非root用户
1.添加系统用户
useradd sonarqube
passwd sonarqube
密码设置为:sonarqube(个人设置)
2.优化系统参数
sysctl -w vm.max_map_count=262144
sysctl -w fs.file-max=65536
ulimit -u 4096 sonarqube
ulimit -n 65536 sonarqube
3.设置目录权限
cd /home
mkdir sonarqube
chown -R sonarqube:sonarqube /home/sonarqube
安装Sonar
- sonar官网 下载Community安装包
SonarQube 的安装包是不分平台的,默认把所有平台的运行命令都下载下来,使用者根据不同环境运行不同的运行脚本。
下载完成后,我们把安装包 sonarqube-8.3.1.zip 放在linux服务器的安装目录(喜欢的任意位置),然后用解压命令解压。
yum install unzip
unzip sonarqube-8.3.1.34397.zip
bin目录存放了各个环境的启动脚本
conf目录存放着sonarqube的配置文件
logs目录存放着启动和运行时的日志文件
2.配置 SonarQube
sonar.properties 这个配置文件里配置了支持的数据库信息,mysql需要手动配置
1 |
|
wrapper.conf 这个配置文件里配置了java命令地址,sonarqube 的日志文件目录等
3.SonarQube 启动
#切换用户
su sonarqube
#切换目录
cd /home/sonarqube/sonarqube-8.3.1.34397/bin/linux-x86-64/
#启动sonar
./sonar.sh start
#查看sonar运行状态
sh sonar.sh status
#浏览器访问,默认账号密码:admin
http://虚拟机IP:9000/
#浏览器如果访问不成功,检查防火墙是否开放9000端口
## 检查防火墙配置
sudo firewall-cmd --list-all
## 开启8080端口
sudo firewall-cmd --zone=public --add-port=9000/tcp
sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
## 重新加载防火墙配置
sudo firewall-cmd --reload
4.SonarQube日志
es.log es或mysql等数据库连接报错,一般是mysql的连接字符串账号密码错误或者sonar账号权限不够;
es.log 数据库初始化失败 MySQL sonar 账户权限不足
sonar.log sonar服务的启动日志
web.log sonarqube web的启动日志
5.FAQ:
5-1: can not run elasticsearch as root
5-2:java.lang.IllegalStateException: SonarQube requires Java 11 to run
2.【SonarQube插件】
参考资料
QiXiao_柒小(東): 《SonarQube系列一、Linux安装与部署》