专栏内容
持续集成01--Git版本管理及基础应用实践_持续集成下的git分支-CSDN博客
持续集成02--Linux环境更新/安装Java新版本-CSDN博客
持续集成03--Jenkins的安装与配置-CSDN博客
持续集成04--Jenkins结合Gitee创建项目_jenkins集成gitee-CSDN博客
持续集成05--Gogs的安装与使用-CSDN博客
持续集成06--Jenkins构建常用触发器的使用_jekins 配置触发器-CSDN博客
持续集成07--Jenkins配置Allure测试报告_jenkins上 allure 报告配置-CSDN博客
持续集成08--Jenkins邮箱发送构建信息及测试报告_jenkins 邮件内容自定义-CSDN博客
前言
在软件开发的高速迭代中,代码质量与安全性的保障成为了不可忽视的重要环节。为了确保代码的稳定性和安全性,持续集成(CI)流程中集成自动化代码漏洞扫描工具变得尤为关键。Jenkins,作为业界广泛应用的CI工具,其强大的扩展性为我们提供了集成各种插件的便利。而SonarQube,作为领先的代码质量管理平台,通过其全面的代码分析功能,帮助我们发现并修复代码中的潜在漏洞和不良实践。
本文将详细阐述如何在Jenkins中配置SonarQube代码漏洞扫描工具,通过简洁明了的步骤,指导实现代码质量的自动化检测,从而提升软件的整体质量和安全性。
1、Sonar安装与配置
1.1、SonarQube下载
下载地址:www.sonarsource.com
1.2、SonarQube安装
1.2.1、解压文件
将zip文件上传至服务器,通过命令解压文件
Unzip sonarqube-9.7.0.61563.zip
1.2.2、创建普通用户
使用root用户运行任何应用程序,都会带来潜在的安全风险。root用户拥有对系统的完全访问权限,因此任何漏洞或不当操作都可能对系统造成严重影响。
当使用root用户启动SonarQube时,它可能会创建或修改一些文件和目录,这些文件和目录的默认所有者将是root。这可能导致后续以非root用户身份运行时出现权限问题;SonarQube集成了Elasticsearch等组件,这些组件通常不建议以root用户运行,因为它们需要限制对系统资源的访问以防止潜在的安全问题。
最佳安全实践之一是避免使用root用户运行应用程序。相反,应该使用具有适当权限的专用用户账户来运行应用程序。
在Linux系统中,可以使用adduser或useradd命令创建一个新用户,例如sonar。
useradd sonar -p sonar
执行后可以看到home目录下新增了用户sonar的文件夹
1.2.3、普通用户授权
将 sonarqube目录及其包含的所有文件和子目录的所有者更改为用户 sonar。进入到sonarqube文件夹上级目录,执行命令。
chown -R sonar sonarqube/
执行之后,通过命令ll可以看到用户由root变成了sonar
1.3、启动Sonar
启动sonar前,先切换普通⽤户再运⾏
su sonar
进入到sonarqube目录下linux环境启动文件所在目录,执行命令
# 进入到启动目录下
cd ./sonarqube/bin/linux-x86-64/
# 执行启动
./sonar.sh start
# 或者进入到sonarqube目录下直接执行
./bin/linux-x86-64/sonar.sh start
1.3、访问SonarQube
1.3.1、登录SonarQube
浏览器输入地址:http://ip:9000
默认账号/密码:admin/admin
1.3.2、重置密码
填写密码后点击Update,进行登录。注意:新旧密码不能相同
1.4、SonarQube汉化
1.4.1、下载汉化包
SonarQube首页找到导航栏Administration--Marketplace--Plugins,输入框输入Chinese,出现汉化包,此时你会点击install,但是没用,不能安装;需要我们手动下载:点击搜索到的插件里面的“Homepage”进入汉化包的github,点击Latest version,点击.jar文件下载jar包
1.4.2、部署汉化包
将下载的jar包放到我们安装的sonarqube路径下的插件文件夹下,我的路径是/usr/local/sonarqube/extensions/plugins;然后重启我们的sonarqube(./bin/linux-x86-64/sonar.sh restart);重新刷新sonarqube页面即可
1.5、添加Token令牌
这一步主要是为了在Jenkins添加sonarqube的登录凭证;进入Sonarqube--账号--我的账号--通用令牌填写相关信息,然后点击生成
2、Jenkins配置
2.1、安装插件
进入Manages Jenkins--Plugins,搜索SonarQube插件进行安装
2.2、Tools配置
进入Manages Jenkins--Tools,找到SonarQube Scanner安装,点击SonarQube Scanner安装下拉框,输入name、勾选install、选择版本(此处我选择的是默认版本6.1.0.4477),然后进行保存
2.3、系统配置
2.3.1、配置SonarQube servers
Jenkins进入Manages Jenkins--System,找到SonarQube servers;勾选Environment ,填写name(自定义)、URL(SonarQube链接地址)、token(sonar凭证)
2.3.2、添加凭证
此处添加凭证类型选择text,Secret填写我们在sonarqube创建的令牌,填写描述,点击添加
创建凭证之后记得回来在Server authentication token栏选择我们添加好的凭证,然后进行保存
2.4、项目配置
进入项目配置页,点击增加构建步骤,选择Execute SonarQube Scanner;
然后找到Analysis properties栏填写执行命令,保存配置;
sonar.projectname=${JOB_NAME}
sonar.projectKey=${JOB_NAME}
sources=./
sonar.java.binaries=PytestApiFrame/
其中“sources=./”表示当前项目工作路径,
“sonar.java.binaries=PytestApiFrame/”表示需要sonar扫描的项目代码文件目录
3、项目构建
3.1、直接构建项目
通过日志信息可以看到已经在安装sonar scanner文件
3.2、查看扫描信息
构建完成后在项目页面便可以看到sonar图标,点击查看扫描信息
点击扫描结果,可以查看具体缺陷、漏洞详情,根据详情修复我们的代码。
总结
通过本文的指引,基本了解如何在Jenkins中集成SonarQube代码漏洞扫描工具,并掌握了从插件安装、项目配置到扫描执行的完整流程。这一集成不仅简化了代码质量检测的流程,还提高了检测的效率和准确性。可以利用这一强大的工具,在持续集成的过程中及时发现并修复代码中的漏洞,为软件的稳定运行和安全性保驾护航。