【云原生】DevOps(四):集成Sonar Qube

简介: 【云原生】DevOps(四):集成Sonar Qube

一、Sonar Qube介绍
Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。

Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来

Sonar Qube的UI界面
在这里插入图片描述
二、Sonar Qube环境搭建

  1. Sonar Qube安装

Sonar Qube在7.9版本中已经放弃了对MySQL的支持,并且建议在商业环境中采用PostgreSQL,那么安装Sonar Qube时需要依赖PostgreSQL。

并且这里会安装Sonar Qube的长期支持版本8.9

拉取镜像

docker pull postgres
docker pull sonarqube:8.9.3-community
编写docker-compoe.yml

version: "3.1"
services:
db:

image: postgres
container_name: db
ports:
  - 5432:5432
networks:
  - sonarnet
environment:
  POSTGRES_USER: sonar
  POSTGRES_PASSWORD: sonar

sonarqube:

image: sonarqube:8.9.3-community
container_name: sonarqube
depends_on:
  - db
ports:
  - "9000:9000"
networks:
  - sonarnet
environment:
  SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
  SONAR_JDBC_USERNAME: sonar
  SONAR_JDBC_PASSWORD: sonar

networks:
sonarnet:

driver: bridge

启动容器

docker-compose up -d
需要设置sysctl.conf文件信息

设置vm.max_map_count
在这里插入图片描述
| [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-psH0GSDZ-1657006614692)(Pictures/image-20211207145342350.png)] | 并执行命令刷新

sysctl -p
重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功

容器日志

访问Sonar Qube首页

登录
在这里插入图片描述
还需要重新设置一次密码

重新设置密码
在这里插入图片描述
Sonar Qube首页

Sonar Qube首页
在这里插入图片描述

  1. 安装中文插件

安装中文插件
在这里插入图片描述
安装成功后需要重启,安装失败重新点击install重装即可。

安装成功后,会查看到重启按钮,点击即可

重启按钮
在这里插入图片描述
重启后查看效果

首页效果
在这里插入图片描述
三、Sonar Qube基本使用
Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果

  1. Maven实现代码检测

修改Maven的settings.xml文件配置Sonar Qube信息

<id>sonar</id>
<activation>
    <activeByDefault>true</activeByDefault>
</activation>
<properties>
    <sonar.login>admin</sonar.login>
    <sonar.password>123456789</sonar.password>
    <sonar.host.url>http://192.168.11.11:9000</sonar.host.url>
</properties>


在代码位置执行命令:mvn sonar:sonar

执行代码检测
在这里插入图片描述
查看Sonar Qube界面检测结果

Sonar Qube检测结果
在这里插入图片描述

  1. Sonar-scanner实现代码检测

下载Sonar-scanner:下载网址

下载4.6.x版本即可,要求Linux版本

解压并配置sonar服务端信息

由于是zip压缩包,需要安装unzip解压插件

yum -y install unzip
解压压缩包

unzip sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip
配置sonarQube服务端地址,修改conf下的sonar-scanner.properties

配置服务端信息
在这里插入图片描述
执行命令检测代码

在项目所在目录执行以下命令

~/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=java -Dsonar.java.binaries=target/
Ps:主要查看我的sonar-scanner执行命令的位置

查看日志信息
在这里插入图片描述
查看SonarQube界面检测结果

检测结果
在这里插入图片描述
四、Jenkins集成Sonar Qube
Jenkins继承Sonar Qube实现代码扫描需要先下载整合插件

  1. Jenkins安装插件

下载Sonar Qube插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Jenkins配置Sonar Qube

开启Sonar Qube权限验证

开启Sonar Qube权限校验
在这里插入图片描述
获取Sonar Qube的令牌

获取令牌
在这里插入图片描述
配置Jenkins的Sonar Qube信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 配置Sonar-scanner

将Sonar-scaner添加到Jenkins数据卷中并配置全局配置

配置Sonar-scanner
在这里插入图片描述
配置任务的Sonar-scanner

配置任务的Sonar-scanner
在这里插入图片描述

  1. 构建任务

构建任务
在这里插入图片描述
在这里插入图片描述

目录
相关文章
|
3月前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
78 3
|
3月前
|
运维 Devops jenkins
DevOps实践:持续集成与持续部署在现代软件开发中的作用
【10月更文挑战第42天】在快节奏的软件开发世界里,DevOps已经成为一种提升效率、确保质量和加速交付的重要方法。本文将深入探讨DevOps的核心组成部分—持续集成(CI)和持续部署(CD)—并展示它们如何通过自动化流程优化开发周期。我们将从基础概念讲起,逐步过渡到实际操作,最终通过一个简单代码示例来演示这一过程。文章旨在为读者提供清晰的指导,帮助他们理解和实现CI/CD流程,从而在软件开发领域取得竞争优势。
|
3月前
|
Devops jenkins 测试技术
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第41天】在软件开发的世界中,快速迭代和高效交付是企业竞争力的关键。本文将带你走进DevOps的核心实践——自动化部署与持续集成,揭示如何通过它们提升开发流程的效率与质量。我们将从DevOps的基本理念出发,逐步深入到具体的技术实现,最终展示一个实际的代码示例,让理论与实践相结合,为你的开发旅程提供清晰的指引。
79 4
|
3月前
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
3月前
|
运维 Devops jenkins
DevOps实践之持续集成与持续交付
【10月更文挑战第32天】在软件开发的快节奏世界中,DevOps已经成为提升效率和质量的关键策略。通过将开发(Development)和运维(Operations)紧密结合,DevOps促进了更快速的软件发布和更高的可靠性。本文将深入探讨DevOps的核心组成部分——持续集成(CI)和持续交付(CD),并展示如何通过实际代码示例实现它们,以帮助团队构建更加高效和稳定的软件发布流程。
|
2月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
2月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
3月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
72 3
|
3月前
|
Cloud Native 持续交付 云计算
云原生架构的演进与挑战
随着云计算技术的不断发展,云原生架构已成为企业数字化转型的重要支撑。本文深入探讨了云原生架构的概念、发展历程、核心技术以及面临的挑战,旨在为读者提供一个全面了解云原生架构的视角。通过分析Kubernetes、Docker等关键技术的应用,以及微服务、持续集成/持续部署(CI/CD)等实践案例,本文揭示了云原生架构在提高应用开发效率、降低运维成本、增强系统可扩展性等方面的显著优势。同时,也指出了云原生架构在安全性、复杂性管理等方面所面临的挑战,并提出了相应的解决策略。
|
2月前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####

热门文章

最新文章