CD/CD-Jenkins-SonarQube文档

SonarQube文档

一.SonarQube概述

1.什么是SonarQube?

SonnarQube是一个开源的代码质量管理,用与检测代码中的错误,漏洞和代码规范。它可以现在的Gitlab,Jenkins集成,以便在项目拉取后进行连续的代码检查。

2.使用SonarQube前提?

1)SonarQube基于Java开发,所以需要Open JDK8版本。
2)SonarQube需要依赖MySQL数据库,至少5.6版本以上。
3)SonarQube的小型实例至少需要4GB内存,如果是大型实例需要16GB。

4)如果是在Linux环境中,SonarQube不得在root帐户下运行,必须创建一个普通用户,然后在普通用户下启动运行。

二.SonarQube安装

1.服务端安装
下载链接:`http://www.sonarqube.org/downloads/`(下载时可能需要翻X软件)
下载完成SonarQube压缩包后,将其传输到Linux系统中,使用普通用户解压该压缩包(使用root用户解压,则后续需要对解压出来的文件夹进行授权)
默认访问的url   http://IP:9000
用户:admin
密码:admin
#SonarQube需要java环境
[root@sonarqube ~]# yum install java -y
[root@sonarqube ~]# ll /rpmbao/
total 318008
-rw-r--r-- 1 root root  20515804 Aug  4 15:55 mysql-community-client-5.6.45-2.el7.x86_64.rpm
-rw-r--r-- 1 root root    263300 Aug  4 15:55 mysql-community-common-5.6.45-2.el7.x86_64.rpm
-rw-r--r-- 1 root root   2130748 Aug  4 15:55 mysql-community-libs-5.6.45-2.el7.x86_64.rpm
-rw-r--r-- 1 root root  62561972 Aug  4 15:55 mysql-community-server-5.6.45-2.el7.x86_64.rpm
-rw-r--r-- 1 root root  42051685 Aug 11 16:19 sonar_plugins.tar.gz
-rw-r--r-- 1 root root 155709573 Aug  4 15:54 sonarqube-7.0.zip
-rw-r--r-- 1 root root  42392358 Aug  4 15:53 sonar-scanner-cli-4.0.0.1744-linux.zip
[root@sonarqube ~]# yum localinstall mysql-community-*.rpm -y
[root@sonarqube ~]# systemctl start mysqld
#创建sonar数据库
[root@sonarqube ~]# mysql
  > mysql> create database sonar charset utf8;
[root@sonarqube ~]# unzip sonarqube-7.0.zip -d /usr/local/
[root@sonarqube ~]# ln -s /usr/local/sonarqube-7.0/ /usr/local/sonarqube

#配置sonar连接mysql数据库
[root@sonarqube ~]# vim /usr/local/sonarqube/conf/sonar.properties
 16 sonar.jdbc.username=root
 17 sonar.jdbc.password=oldboy123
 18 
 19 #----- Embedded Database (default)
 20 # H2 embedded database server listening port, defaults to 9092
 21 #sonar.embeddedDatabase.port=9092
 22 
 23 #----- MySQL 5.6 or greater
 24 # Only InnoDB storage engine is supported (not myISAM).
 25 # Only the bundled driver is supported. It can not be changed.
 26 sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=tr    ue&useConfigs=maxPerformance&useSSL=false
 
#启动sonar
#sonarqube不能以root启动,会报错
[root@sonarqube ~]# useradd sonar 
[root@sonarqube ~]# chown -R sonar.sonar /usr/local/sonarqube
[root@sonarqube ~]# chown -R sonar.sonar /usr/local/sonarqube-7.0/
[root@sonarqube ~]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start"
#导入插件	
[root@sonarqube ~]# tar xf sonar_plugins.tar.gz   
[root@sonarqube ~]# rm -f /usr/local/sonarqube/extensions/plugins/*
[root@sonarqube ~]# cp -rp  plugins/* /usr/local/sonarqube/extensions/plugins/
重载服务
[root@sonarqube ~]# su - sonar -c "/usr/local/sonarqube/bin/linux-x86-64/sonar.sh restart"
#查看日志文件
/usr/local/sonarqube/logs/sonar.log

访问sonarqube页面

默认访问的url http://sonar.zhangxianwei.com:900
用户:admin
密码:admin

#得到token密码:用于配置在客户端的/usr/local/sonar-scanner/conf/sonar-scanner.properties文件中,向sonarqube传输检测代码不需要输入密码
jenkins: 9d43745c0e45eaee7a6b749e7778f21a0a808ab5
2.客户端安装

1.安装客户端命令

sonar-scanner-cli-4.0.0.1744-linux.zip

[root@jenkins ~]# unzip sonar-scanner-cli-4.0.0.1744-linux.zip -d /usr/local/
[root@jenkins ~]# ln -s /usr/local/sonar-scanner-4.0.0.1744-linux/ /usr/local/sonar-scanner

2.配置sonar-scanner

[root@jenkins ~]# vim  /usr/local/sonar-scanner/conf/sonar-scanner.properties
sonar.host.url=http://sonar.zhangxianweii.com:9000
sonar.login=9d43745c0e45eaee7a6b749e7778f21a0a808ab5
sonar.sourceEncoding=UTF-8

三.如何使用sonarqube检测代码

1.安装sonar-scanner 客户端—> 谁要实现推送代码质检,就在谁上面安装。(当然是jenkins,jenkins拉取代码后放在了workspace中,然后就可以交给sonarqube了)

2.到gitlab拉去的代码目录下执行检测命令

检测html代码执行命令

/usr/local/sonar-scanner/bin/sonar-scanner  
-Dsonar.projectName= monator  #,随便写,sonarqube网页中检测项目的名称。
-Dsonar.projectKey= monator  #随便写,sonar.projectName的唯一键值
-Dsonar.sources=. #检测当前目录下的代码

同理,检测java代码时,执行的命令 ,需要安装maven

mvn sonar:sonar 
-Dsonar.projectName=monator  #,随便写,sonarqube网页中检测项目的名称。
-Dsonar.projectKey=monator  #随便写,sonar.projectName的唯一键值
-Dsonar.sources=. #检测当前目录下的代码

#需要安装maven

四.Jenkins与sonarqube集成

为什么需要将jenkins与sonarqube集成?

jenkins集成sonarqube为了完成一套完整的CI/CD流程,jenkins将代码从gitlab拉取到jenkins的WORKSPACE,再将代码通过sonarqube的客户端推送到sonarqube的服务端完成代码的检测,检测通过后jenkins再将WORKSPACE中的代码部署到web服务器,完成一整自动拉取代码----->代码检测----->代码发布的流程。

五.如何与sonarqube集成

1.插件安装。系统管理—>插件管理—>SonarQube Scanner for Jenkins

在这里插入图片描述

2.需要在Jenkins上配置SonarQube服务端

系统管理–>系统设置–>SonarQube(告诉Jenkins,SonarQube服务端地址)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.同时还需要再Jenkins上配置Sonar-Scanner的工具路径

系统管理–>全局工具配置–>(告诉jenkins,SonarqubeScanner在本地哪个路径)

PS:如果不配置sonar-scanner路径,则无法经行代码扫描。

在这里插入图片描述

六.如何使用sonarqube?

代码拉取->代码检测->代码构建->代码部署->消息通知

1.代码拉取

在这里插入图片描述

2.代码检测

在这里插入图片描述

3.代码构建
在这里插入图片描述

4.代码部署
在这里插入图片描述

脚本配合参数构建完成代码部署

在这里插入图片描述

发布了48 篇原创文章 · 获赞 1 · 访问量 1464

猜你喜欢

转载自blog.csdn.net/weixin_43876317/article/details/103511836
cd
今日推荐