7、jenkins 结合Sonarqube代码质量分析

一、Sonarqube安装

1、阿里yum源

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2、Java环境安装

yum install lrzsz vim -y
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
java -version

3、sonarqube软件包及中文包下载,这里下载7.3的版本,八点多的版本需要jdk11了,先不用了。

https://binaries.sonarsource.com/Distribution/sonarqube/
https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases 放到:extensions/plugins/

4、安装

unzip sonarqube-7.3.zip -d /usr/local/
cp sonar-l10n-zh-plugin-1.23.jar /usr/local/sonarqube-7.3/extensions/plugins/
useradd sonar
chown -R sonar:sonar /usr/local/sonarqube*

5、配置数据库,先安装一个mysql,可以参考前面的Centos7 Zabbix4.0.3安装中mysql的安装

登陆mysql,创建一个sonar数据库,这个数据库在sonarqube的配置sonar.jdbc.url中需要用到

mysql -uroot -h 127.0.0.1 -p123456
create database sonar;

6、修改sonarqube数据库配置,使用前面创建的数据库及账号密码,如果mysql安装在其他机器上则使用机器ip,并且mysql需要允许其他机器连接mysql 允许其他机器连接。如果没有修改的话默认使用内嵌的数据库。
vim /usr/local/sonarqube-7.3/conf/sonar.properties

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerfo
rmance&useSSL=false
sonar.jdbc.username=root  
sonar.jdbc.password=123456

7、启动sonarqube,sonar不能用root启动,需要用普通用户

su - sonar
sh /usr/local/sonarqube-7.3/bin/linux-x86-64/sonar.sh start

8、访问sonar,网页端口9000,默认用户名密码admin
在这里插入图片描述

9、在(配置–通用设置–权限),开启强制认证
在这里插入图片描述
10、禁用SCM传感器,点击 配置—SCM—Disable the SCM Sensor 将其关闭。
在这里插入图片描述
11、admin用户的权限配置:开启执行分析权限
在这里插入图片描述

二、sonarscan手动扫描代码

1、sonarscanner安装

下载地址

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

解压

unzip sonar-scanner-cli-4.2.0.1873-linux.zip -d /usr/local/

2、配置sonar-scanner.properties

vim /usr/local/sonar-scanner-4.2.0.1873-linux/conf/sonar-scanner.properties

sonar.host.url=http://localhost:9000

3、设置环境变量
vim /etc/profile

export SONAR_RUNNER_HOME=/usr/local/sonar-scanner-4.2.0.1873-linux
export PATH=$SONAR_RUNNER_HOME/bin:$PATH
source /etc/profile
sonar-scanner --version

在这里插入图片描述

4、创建一个文件夹存放代码

 mkdir -pv /soft/python/

5、编辑一个python文件,print没加引号,测试是否能检测出错误

vim /soft/python/sonar_scannertest.py

print wangxiaoyu

6、配置 sonar项目检查的配置文件,在执行sonar-scanner扫描时会去寻找这个文件,需要配置一个sonar项目的key和name,以及代码目录,还有sonar的账号密码
vim /soft/sonar-project.properties

sonar.projectKey=wangxiaoyu
sonar.projectName=wangxiaoyu
sonar.projectVersion=1.0
sonar.sources=/soft/python
sonar.login=admin
sonar.password=admin

7、在sonar-project.properties那层目录下运行sonar-scanner命令,进行代码检查

cd /soft/
sonar-scanner

在这里插入图片描述
8、到sonarqube上查看,可以看到这个项目
在这里插入图片描述
并且代码问题有检查出来

在这里插入图片描述

三、jenkins+sonarqube自动扫描

1、jenkins服务器上需要安装sonar-scanner,如果没有装需要装一下,我这边都在同一台上了。jenkins需要安装插件SonarQube Scanner for Jenkins。
在这里插入图片描述
2、Jenkins全局工具配置 sonarqube scanner

name sonarscan
SONAR_RUNNER_HOME /usr/local/sonar-scanner-4.2.0.1873-linux

在这里插入图片描述
3、Jenkins系统配置sonar

系统管理 -> 系统配置 -> 配置SonarQube servers
在这里插入图片描述

4、Jenkins项目扫描设置Analysis properties,这里使用前面的gitlabansible这个项目。

在执行ansible构建步骤之前增加一个sonarqube scanner构建步骤
在这里插入图片描述
Analysis properties 设置snoar任务key和name,以及登陆的账号密码,可以使用token,下面会说

sonar.projectKey=gitlabansible
sonar.projectName=gitlabansible
sonar.projectVersion=1.0
sonar.sources=.
sonar.login=admin
sonar.password=admin

Additional arguments -X

在这里插入图片描述
5、然后进行jenkins构建,查看sonarqube界面,可以看到有上面设置的gitlabansible这个任务。
在这里插入图片描述

6、Jenkins使用token方式访问sonarqube

在sonarqube用户设置安全中,选择生成一个令牌,复制生成的token

f6ff3b6ff817e526e8c9d35ee52096faab01dcd1

在这里插入图片描述
在jenkins的 系统管理 -> 系统配置 -> 配置SonarQube servers,添加一下这个secret text类型的token
在这里插入图片描述

在jenkins项目中,重新设置一下Analysis properties,取消账号密码的设置

sonar.projectKey=gitlabansible
sonar.projectName=gitlabansible
sonar.projectVersion=1.0
sonar.sources=.

然后再执行一下构建,可以构建成功,说明sonarqube生成的token配置在jenkins中是有效的
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值