目录
1.2在Jenkins页面安装连接SonarScanner的插件
1.3在Jenkins页面的系统配置中添加SonarQube,用于连接到SonarQube服务器
四.实现自由风格的CI操作(包括Jenkins集成其他服务)
2.Jenkins集成GitLab并从GitLab拉取工程代码
2.2在Jenkins页面集成GitLab(私有仓库需要用户名和密码)
2.3构建项目成功后,可以看见Jenkins服务器的数据卷目录下存在该项目
3.将从GitLab拉取的代码构建为jar包(Jenkins调用本地的maven)
3.1在Jenkins页面的项目添加构建步骤---调用顶层Maven目标
4.1在Jenkins页面的项目添加构建步骤---Execute SonarQube Scanner
4.2再次构建项目(没展示),可以看见SonarQube的页面新增了一个项目(第二个项目,第一个项目为后续流水线创建的)
5.在Jenkins服务器把项目构建为镜像并推送到Harbor
5.2在Jenkins服务器修改/etc/docker/daemon.json(用于连接Harbor服务器),还需重启docker服务
5.3在Jenkins页面的项目添加构建步骤---执行shell($htag为后续步骤使用)
5.4再次构建项目(没展示),可以看见Jenkins服务器中有了镜像,Harbor也有了上传过来的镜像
6.1在Target服务器修改/etc/docker/daemon.json---跟Jenkins服务器是一样的
6.2在Target服务器PATH路径下,具体为/usr/local/bin目录下创建脚本文件deploy.sh,赋予可执行权限:chmod +x deploy.sh(这样文件就可以在任意目录下运行)
6.3在Jenkins页面添加端口号参数和构建步骤---Send build artifacts over SSH(Jenkins使目标服务器运行脚本,传递位置参数,其中$htag为后续步骤使用)
6.4再次构建项目(没展示),可以看见Target服务器已成功拉取镜像和启动容器(带版本号的为后续操作结果)
1.在IDEA修改代码并推送到GitLab,GitLab给修改后的代码添加标签
2.再次修改代码并推送到GitLab,GitLab再次添加标签
3.在Jenkins页面添加Git参数与构建步骤---执行shell(此步骤要执行在最前面)
4.再次构建项目时,可以看到新增了htag参数(export_port参数是之前的步骤添加的),并且可以选择构建哪个版本
Target服务器也有了不同版本的镜像跟用2.0版本镜像启动的容器
3.工程代码中新增Jenkinsfile文件并推送到GitLab
5.重新构建后会发现,新增了一个新的阶段 Checkout SCM,即从 SCM 中检出脚本。
6.流水线管理项目,通过流水线语法将项目步骤生成流水线脚本并写入Jenkinsfile文件,代码内容如下
一.项目环境
五台CentOS7虚拟机(Jenkins、GitLab、SonarQube、Harbor、Target),都需要安装docker和docker compose。
服务器的IP地址分别为:
GitLab:192.168.249.191
SonarQube:192.168.249.192
Harbor:192.168.249.193
Jenkins:192.168.249.194
Target:192.168.249.195
注意:GitLab服务器的内存至少为4G
系统架构图:
二.服务器的安装与配置
分别在五台CentOS虚拟机上,拉取镜像并启动容器,在容器里运行GitLab、SonarQube、Harbor、Target和Jenkins服务,并配置好相关文件。
GitLab、SonarQube、Harbor和Jenkins四台服务器的安装配置如下:
GitLab:Docker:GItLab的安装配置_不吃辣9的博客-CSDN博客
SonarQube:Docker:SonarQube的安装配置_不吃辣9的博客-CSDN博客
Harbor:Docker:Harbor的安装配置_不吃辣9的博客-CSDN博客
Jenkins:Docker:Jenkins的安装配置_不吃辣9的博客-CSDN博客
Target目标服务器:
三.Jenkins集成SonarQube和Target
1.Jenkins集成SonarQube
1.1首先在Jenkins服务器中安装SonarScanner(SonarScanner是一种静态代码分析工具,用于发现软件项目中的代码质量问题。它是SonarQube生态系统的一部分,能够检测和报告源代码中的潜在问题,如代码复杂性、重复代码、安全漏洞、代码覆盖率等。)
从SonarQube官网上下载Linux版本SonarScanner,命令:
![](https://i-blog.csdnimg.cn/blog_migrate/1ac6f0be833d13d95eaac3904efaf0e0.png)
修改/var/jenkins_home/sonar-scanner/conf/sonar-scanner.properties配置文件如下:
1.2在Jenkins页面安装连接SonarScanner的插件
这里是已安装的插件,安装插件在Available plugins
在全局工具配置中进行配置:
1.3在Jenkins页面的系统配置中添加SonarQube,用于连接到SonarQube服务器
2.Jenkins集成Target
在系统配置中新增SSH Servers并添加
四.实现自由风格的CI操作(包括Jenkins集成其他服务)
1.创建web工程提交到GitLab
1.1在GitLab创建远程仓库
1.2在IDEA创建一个Git本地仓库并推送工程到远程仓库
这里我使用的是IDEA,需要在IDEA创建一个Git本地仓库(由于我主要学习的是python,所以IDEA我不是特别会用,每个人学习的语言也可能会有差异,因此这里不讲Git的配置)
注意:第一次提交代码时,需要填写远程仓库的URL,clone下的http地址