Sonar:搭建Sonar7.9.x LTS服务器
在公司转岗做测开了,估计2021年上半年的工作都在自动构建上面,下半年估计忙自动化测试脚本开发和维护。
大体上,由于公司项目都是安卓系统源码工程,自动构建选了Jenkins+Gerrit+SonarQube等开源工具来实现。
现在主要讲讲怎么搭建SonarQube服务器:
- 首先准备一台Ubuntu服务器,建议直接购买刀片机,安全又稳定(预算有限直接上台台式主机也可以)。
1)下载一些文件:
- SonarQube最新LTS版本:按住Ctrl,点击左键下载
- JDK11(SonarQube必须要JDK11支持):下按住Ctrl,点击左键下载
- C/C++ 扫描插件(免费的社区版本不带):按住Ctrl,点击左键下载
2)先安装数据库PostgreSQL(这个是Sonar唯一支持的开源DB,MS-SQL&Oracle都是收费的),命令:
sudo apt install PostgreSQL
然后对数据库进行简单的配置:
- 创建用户postgres,命令:
sudo -i -u postres
- 输入以下命令进入交互界面:
psql -u postres
- 在交互界面输入以下命令修改默认密码:
alter user postres with password '你的数据库账户密码';
- 继续输入以下命令创建数据库:
CREATE DATABASE sonar;
- 输入以下命令退出设置:
q
- 输入exit退出postres账户
- 将数据库信息写入到sonar的配置文件 $SONARQUBE-HOME/conf/sonar.properties:
sonar.jdbc.username=postgres
sonar.jdbc.password=你的密码
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
3)配置JDK路径到sonar配置文件$SONARQUBE-HOME/conf/wrapper.conf ,将以下行改为:
wrapper.java.command=你的JDK11绝对路径
4)把下载的CXX检查的jar包放入$SONARQUBE-HOME/extensions/plugins下
5)使用$SONARQUBE-HOME/bin/linux-x86-64/sonar.sh start启动sonar服务器, 出现以下字样代表启动成功(不能使用root权限启动):
Starting SonarQube...
SonarQube is already running.
6)浏览器输入 ip:9000 ,就可以看到sonar的主页了。
默认账户/密码:admin/admin
7)安装简体中文包:
① 点击顶部菜单,最后一个配置,
② 点击子菜单“应用市场”,
③ 在插件搜索框中输入“chinese”,安装简体中文插件
一些问题解决方法:
1、启动的时候遇到 Process exited with exit value [es]: 143报错:
解决方法:
在/etc/sysctl.conf文件中加入
vm.max_map_count=262144
fs.file-max=65536
然后执行sysctl -p使配置生效
在 /etc/security/limits.conf后加入
ulimit -n 65536
ulimit -u 2048
然后切换sonar用户下执行ulimit -Hn
$SONARQUBE-HOME/bin/linux-x86-64/sonar.sh restart 重启
2、启动的时候遇到 Process exited with exit value [es]: 1报错:
解决方法:
以普通权限运行,不要以root权限执行