ubuntu20.04 搭建SonarQube服务器&&sonar-scanner

系列文章目录

一 ubuntu20.04搭建Sonarqube服务器&&sonar-scanner

二  sonarqube安装c++插件并检测c++代码

三  sonarqube安装gitlab插件集成gitlab-ci

本文目录

一、Sonarqube简介

二、搭建sonarqube服务器

1.简介

2.配置mysql数据库

3.下载安装sonarqube

4.开启服务器

三、安装部署sonar-scanner

1.下载安装sonar-scanner

2.配置

总结


一、Sonarqube简介

 SonarQube是一个自动检查代码的工具,用于检测代码中的错误、漏洞和代码异味。支持对多种编程语言的扫描。包括java,c++,c#,js,python,go,php等27种语言(不过现在免费的社区版已经不再支持c++,需要安装插件sonar-cxx)。

此外,它可以与您现有的工作流如Gitlab集成(社区版同样不支持,需要安装插件sonar-gitlab-plugin),以支持跨项目分支和拉取请求的连续代码检查,并将结果反馈。

二、搭建sonarqube服务器

官方文档:https://docs.sonarqube.org/latest/

1.简介

一个sonarqube服务器主要包含三个部分:web服务器、基于Elasticsearch的搜索引擎、计算引擎(负责处理处理分析报告并保存到数据库)。

因此,SonarQube必须要配合JDK和数据库使用。本文采用的环境:

ubuntu20.04+openjdk11.0.11+mysql5.7.22

安装openjdk及mysql过程略。

2.配置mysql数据库

首先在ubuntu中创建一个用户sonar,密码也设为sonar。由于sonarqube不能用root用户启动,我们创建这个专门的非root用户来启动。

sudo useradd sonar
sudo passwd sonar

在mysql中创建用户sonar和数据库sonar

在mysql登陆root用户

mysql -u root -p

创建用户

create user sonar@localhost identified by 'sonar';

创建数据库

create database sonar DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

设置权限

grant all on sonar.* to 'sonar'@localhost identified by 'sonar';

3.下载安装sonarqube

由于gitlab-plugin不支持sonarqube7.7及之后的版本,这里我们选择sonarqube6.7

可以在下面的地址下载各种版本

https://binaries.sonarsource.com/Distribution/sonarqube/

将下载的.zip文件解压到一个文件夹下,我们这里解压到/opt下,命名为sonarqube

unzip sonarqube-6.7 -d /opt
mv sonarqube-6.7 sonarqube

解压后里面的内容有:

bin   COPYING  elasticsearch  lib   temp
conf  data     extensions     logs  web

其中,启动脚本在bin里,配置文件在conf里,日志在logs里。

打开配置文件:

sudo vim /opt/sonarqube/conf/sonar.properties

编辑数据库的url以及用户名密码等等。

在其中添加:

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

web服务器的端口号默认为9000,可以自己更改:

#sonar.web.port=9000

其他参数详细说明见官方文档。

 另一个配置文件是/opt/sonarqube/conf/wrapper.conf。里面的变量wrapper.java.command应该设置为系统中java的路径,如:

wrapper.java.command=java

或:

wrapper.java.command=/path/to/my/jdk/bin/java

4.开启服务器

在ubuntu系统中进入sonar用户

su sonar

进入sonarqube下的启动脚本目录

cd /opt/sonarqube/bin/linux-x86-64

这里bin后面的目录对应我们的系统,根据系统来选择进入哪一个

执行脚本开启服务器:

./sonar.sh start

要想查看服务器状态可以执行

./sonar.sh status

要想关闭服务器可以执行

./sonar.sh stop

开启服务器后,打开浏览器访问http://127.0.0.1:9000,如果在别的机器上访问就用服务器ip替换127.0.0.1。访问成功可以看到类似下面的页面,说明服务器搭建好了。可以用初试默认的管理员用户登陆,用户名和密码都是admin。

还可以将sonarqube注册为系统服务:

首先停止sonarqube

./sonar.sh stop

然后在/etc/systemd/sytem下创建一个叫sonar.service的文件。

sudo vim /etc/systemd/system/sonar.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=sonar
Group=sonar
Restart=always

LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target

这样就可以用systemctl来管理服务了。

开启:

sudo systemctl start sonar

查看状态:

sudo systemctl status sonar

关闭:

sudo systemctl stop sonar

设置开机自启动:

sudo systemctl enable sonar

三、安装部署sonar-scanner

1.下载安装sonar-scanner

sonar-scanner执行代码扫描并把扫描结果上传到sonarqube服务器上供用户查看。

可以在官方提供的链接下载,下载以后解压即可,步骤与上面安装sonarqube时相同。

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

解压后包含如下文件夹:

bin  conf  jre  lib

2.配置

进入上面的conf中,编辑配置文件sonar-scanner.properties

sudo vim sonar-scanner.properties

配置服务器url,登陆用户名、密码等。初试默认的管理员用户名和密码都是admin。

sonar.host.url=http://localhost:9000
sonar.login=admin
sonar.password=admin

配置环境变量:

sudo vim /etc/profile

在其中增加:

export PATH=/opt/sonar-scanner/bin:$PATH

其中sonar-scanner是安装sonar-scanner的路径。

source以使改动生效:

source source /etc/profile

查看是否安装成功:

sonar-scanner -v

总结

这样,sonarqube服务器以及sonar-scanner就安装配置完成了,下一章我们介绍c++插件,并使用它对我们的项目做代码检测。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值