开发环境部署sonarqube集成jenkins审查python代码(亲测无坑)

1.sonarqube介绍

DevOps理念中,CI/CD毫无疑问是最重要的一环,而代码质量检查则是CI中必不可少的一步。在敏捷开发的思想下,代码的迭代周期变短,交付速度提升,这个时候代码的质量就很难保证。

测试只能保证功能完整与可用,而代码的质量纯靠review的话效率又很低,这个时候SonarQube就可以很好的帮助开发自动化检测代码质量,降低bug数量,也可以根据扫描结果养成良好的编程习惯,同时也可以减少测试的工作量,真正提升整个团队效率,实现DevOps理念。

Sonar(SonarQube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,Python,PHP,C#,C,JS等。

SonarQube的由以下四部分组成:

一个SonarQube Server

一个SonarQube Database

不同种类的SonarQube Plugins

一个或者多个SonarScanners

持续集成中,sonar主要通过以下方式进行集成:

为了简单高效地部署及管理sonar,决定采用docker-compose版本进行部署。亲测无坑,因为坑以及被我踩完了!!!

2.sonarqube的安装与配置

2.1.postgresql

首先需要安装数据库,开源的可以用 mysql 或者 postgresql 。官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql

mkdir -p /data/sonar/postgres/postgresql 
mkdir -p /data/sonar/postgres/data
mkdir -p /data/sonar/sonarqube 
chmod 777 -R /data/sonar/sonarqube 
echo "vm.max_map_count=262144" > /etc/sysctl.conf sysctl -p

然后我们利用docker-compose部署sonarqube,docker以及docker-compose的部署方式自行百度

2.2. sonar-compose.yml 文件

 
 

vim /data/sonar/sonar-compose.yml version: '3' services: postgres: image: postgres:latest container_name: postgres restart: always privileged: true networks: - sonar volumes: - /data/sonar/postgres/postgresql:/var/lib/postgresql - /data/sonar/postgres/data:/var/lib/postgresql/data - /etc/localtime:/etc/localtime:ro ports: - "5432:5432" environment: POSTGRES_USER: sonar POSTGRES_PASSWORD: sonar POSTGRES_DB: sonar TZ: Asia/Shanghai sonar: image: sonarqube:8.9.10-community container_name: sonar restart: always privileged: true networks: - sonar volumes: - /data/sonar/sonarqube/logs:/opt/sonarqube/logs - /data/sonar/sonarqube/conf:/opt/sonarqube/conf - /data/sonar/sonarqube/data:/opt/sonarqube/data - /data/sonar/sonarqube/extensions:/opt/sonarqube/extensions ports: - "9090:9000" links: - "postgres:postgres" environment: ALLOW_EMPTY_PASSWORD: "yes" SONARQUBE_JDBC_USERNAME: sonar SONARQUBE_JDBC_PASSWORD: sonar SONARQUBE_JDBC_URL: "jdbc:postgresql://postgres:5432/sonar" networks: sonar: driver: bridge

移动到/data/sonar 运行docker-compose文件

docker-compose -f sonar-compose.yml up -d

检查docker容器状态,这边我是将sonarqube端口映射到9090

docker ps -a

2.3. 安装中文插件

登录sonarqube客户端,访问http://192.168.5.109:9090

初始账户密码都是admin admin,第一次登录需要修改登录密码

由于找不到7.4版本,所以我们选择离线安装

cd sonarqube/extensions/downloads/ wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.24/sonar-l10n-zh-plugin-1.24.jar docker restart sonar

重新启动之后即可显示中文界面

生成完了之后将令牌保存下来 ,后面会用到

3.jenkins集成sonarqube

3.1.登录jenkins客户端

Jenkins 我直接使用迷你主机的jenkins ,具体的安装步骤以及触发器 可以看我之前那些的jenkins相关的文档

登录jenkins的web页面,这里我已licloud-admin项目为例 当然后续也可以新建项目、

 当然 在此之前 我们需要先下载sonar的插件,以及系统配置,和全局工具配置

3.2. 下载插件

搜索sonar,下载soanrqube scanner for jenkins ,这里我已经提前安装好了 

3.3.系统配置

找到soanrqube servers

 全局凭据,将我们之前保存的sonar令牌 复制粘贴到secret,保存即可

3.4.全局工具配置

找到sonar安装,自动安装选择相应的版本,保存退出,到这里我们所有的全局变量就配置好了

4.Jenkins+SonarQube实现Python项目静态扫描

这里我们开始创建项目实现python代码的静态扫描,这里我以licloud-admin项目为例

添加构建后步骤

其中: sonar.projectKey,sonar.projectName(项目名称,可在项目工程的pom.xml中找) sonar.projectVersion是版本(pom.xml中的版本信息) sonar.sources是需要sonar分析的项目工程中的文件路径

 

保存退出

点击立即构建 构建成功 这个时候我们可以去sonar的web页面查看一下记录

 

代码已经扫描完成 

可以通过点击问题 查看 具体的一些详细信息 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值