虚拟化容器,大数据,DBA,中间件,监控。

SonarQube 01 代码质量平台简介与安装

21 12月
作者:admin|分类:系统运维

SonarQube 简介


SonarQube®是一种自动代码审查工具,可检测代码中的错误,漏洞和代码味道。它可以与您现有的工作流程集成,以实现跨项目分支拉取请求的持续代码检查。

Code Quality and Code Security | SonarQube

 可以对各种语言,几乎常用的主流语言都是支持的,所以一说到代码扫描就会学到sonaqube

image.png开发人员在IDE开发代码,可以安装SonarLint插件进行提交前代码扫描,当开发人员提交代码到版本控制系统中,自动触发jenkins进行代码扫描。(sonaelint最后也会连接到服务器sonarqube去扫描的)

开发人员将代码提交到版本控制系统之后,触发了ci工具,开始跑流水线跑管道,最后将扫描的结果传到sonarqube上面,最后将质量阈以及其他消息以邮件的方式通知用户。

SonarQube平台安装配置


  • SonarQube Server启动3个主要进程:
    • Web服务器,供开发人员,管理人员浏览高质量的快照并配置SonarQube实例
    • 基于Elasticsearch的Search Server从UI进行搜索服务。
    • Compute Engine服务器,负责处理代码分析报告并将其保存在SonarQube数据库中,主要是es,做索引。
  • SonarQube数据库要存储:SonarQube实例的配置(安全,插件设置等)项目,视图质量快照。
  • 服务器上安装了多个SonarQube插件,可能包括语言,SCM,集成,身份验证和管理插件。
  • 在持续集成服务器上运行一个或多个SonarScanner,以分析项目。(将最终扫描的结果推送到server上面去)

不同的语言有不同的代码规范和规则,这些方式以什么方式体现出来的呢,都是以jar包的形式,每个语言都有其独立的jar包,装到server上面就可以使用这些规则的。所以整体组成就是上面四个部分。

这里使用容器,走的是内嵌的数据库,如果生产上面需要额外的配置数据库

## 创建数据目录
mkdir -p /data/cicd2/sonarqube/{sonarqube_conf,sonarqube_extensions,sonarqube_logs,sonarqube_data}
chmod 777 -R /data/cicd2/sonarqube/

## 运行
docker run  -itd  --name sonarqube \
    -p 9000:9000 \
    -v /data/cicd2/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
    -v /data/cicd2/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/cicd2/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/cicd2/sonarqube/sonarqube_data:/opt/sonarqube/data \
    sonarqube:8.9.1-community

## 验证
docker logs -f sonarqube


## lib目录(低于SonarQube8.9.1可以配置持久化,以支持多分支插件。)

mkdir -p /data/cicd/sonarqube/sonarqube_lib
cd  /data/cicd/sonarqube/sonarqube_lib
docker cp sonarqube:/opt/sonarqube/lib/* ./

docker run  -itd  --name sonarqube \
    -p 9000:9000 \
    -v /data/cicd2/sonarqube/sonarqube_conf:/opt/sonarqube/conf \
    -v /data/cicd2/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions \
    -v /data/cicd2/sonarqube/sonarqube_logs:/opt/sonarqube/logs \
    -v /data/cicd2/sonarqube/sonarqube_data:/opt/sonarqube/data \
    -v /data/cicd2/sonarqube/sonarqube_lib:/opt/sonarqube/lib \
    sonarqube:8.9.1-community

默认账号: admin/admin

image

浏览455 评论0
返回
目录
返回
首页
SonarQube 02 插件安装以及配置scanner Jenkins 进阶01 共享库share Library封装常用模块