Jenkins结合Sonarqube实现代码质量评估和漏洞检测

Sonarqube可以实现对15中代码语言的静态扫描和质量评估,包括Java, JavaScript, C#, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML and VB.NET等。并且可以结合数据库对代码bug漏洞修复情况进行长期检测评估。这里说一下,如何将Sonarqube和Jenkins结合,实现对各类语言代码的漏洞扫描和质量评估。

  • 安装环境centos7.4

Jenkins 安装部署

可以参照之前写的Jenkins系列教程

Sonarqube 安装部署

Sonarqube可以在官网下载官网下载,但是建议不要下载最新版的,因为最新版需要Jdk11,一般项目中很少有人使用Jdk11的。
建议选择7.6版本的社区版

Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第1张图片

下载

 

  • 将下载的压缩包解压
unzip sonarqube-7.6.zip
  • 创建用户并授权解压后的文件夹给新建用户,因为sonarqube不支持root用户启动。
# 创建用户
adduser sonarqube
# 设置密码
passwd sonarqube
# 把文件夹授权给用户
chown -R sonarqube sonarqube-7.6
# 切换用户
su sonarqube
  • 修改sonarqube配置文件
    sonarqube-7.6/conf/sonar.properties
    在配置文件中添加
  1. 数据库连接,我用的是postgresql
    sonar.jdbc.url=jdbc:postgresql://192.168.1.71:5432/sonarqube?currentSchema=public
    sonar.jdbc.username=postgres
    sonar.jdbc.password=自己的密码
    

     

  2. 配置本机地址
    sonar.web.host=192.168.1.73
    sonar.search.host=192.168.1.73

     

  3. 用初次登陆户名和密码可以不用配置。默认admin/admin
  • 启动sonarqube服务器

    根据自己的系统类型,进入解压后的文件夹bin目录的对应文件夹下

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第2张图片

    系统类型

sh sonar.sh start #启动sonar

sh sonar.sh stop #安全停止sonar
  • 测试启动
    启动后,可以从浏览访问ip+9000端口(默认)来查看是否启动,如果没有启动可以看log目录下的es和sonar日志,里面有错误信息,我在测试时就看了很多遍
  • 汉化

    全是英文的Sonarqube,需要安装汉化插件

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第3张图片

     

    安装完成后重启看到如下界面

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第4张图片

    安装完成

jenkins配置使用Sonarqube

  • 安装插件SonarQube Scanner For Jenkins,重启Jenkins

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第5张图片

    在sonarqube服务器中生成认证token

  • 点击右上角的用户图标,然后点击安全,生成令牌,然后复制

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第6张图片

     

  • 在Jenkins中配置Sonarqube连接

     

    manage jenkins→Confirm System→SonarQube servers,输入Sonarqube的连接配置

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第7张图片

    连接Sonarqube

  • 配置token
    tokens需要第一次手动添加,可按照下图添加

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第8张图片

     

  • 配置scaner自动安装

    manage jenkins→Global Tool Configuration

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第9张图片

    自动安装

创建扫描项目,进行测试

  • 建立FreeStyle项目,配置git地址
  • 添加构建后操作

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第10张图片

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第11张图片

    注意根据语言调整图中代码

sonar.projectKey=ks-cms-unicorn
sonar.projectName=ks-cms-unicorn
sonar.projectVersion=1.0

sonar.language=java
sonar.sourceEncoding=UTF-8

sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE

保存后,配置完成后项目里有sonarqube图标显示

 

Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第12张图片

 

  • 点击build now构建,构建完成后,开打Sonarqube服务器的地址

     

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第13张图片

     

    点击项目名,即可看到详情

    Jenkins结合Sonarqube实现代码质量评估和漏洞检测_第14张图片

    详情

你可能感兴趣的:(Jenkins自动化测试与部署)