当前位置:

首页 > 编程开发 > 配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

首先安装Jenkins必要插件并配置SSH密钥以实现免密拉取代码,然后创建Jenkins任务并设置构建后自动同步到Web服务器,最后一步配置GitLabWebhook使得代码推送时自动触发部署,从而最终完成一套完整的自动化CI/CD流水线搭建。

配置 Jenkins 自动拉取 gitlab 中的代码并部署

在自动化部署这件事上,Jenkins和GitLab的配合几乎是标配了。今天咱们就来走一遍完整的流程,从插件安装到代码自动触发部署,一步步把这条流水线搭起来。整个过程不算复杂,但有几个容易踩坑的细节,需要特别留意。

1、安装插件

工欲善其事,必先利其器。在开始配置之前,需要提前准备好几个关键插件:
Credentials Plugin(默认已经安装) #签名证书管理插件
Gitlab Plugin #拉取 gitlab 中的源代码
SSH Plugin #这个插件使用 SSH 协议远程执行 shell 命令。
找到对应的插件,勾选上就行。

配置Jenkins自动拉取gitlab中的代码并部署方式

选择之后点击安装,等待安装完成。

配置Jenkins自动拉取gitlab中的代码并部署方式

安装完成后,记得重启Jenkins让插件生效。

配置Jenkins自动拉取gitlab中的代码并部署方式

2、设置 gitlab 用户 root 可以通过 ssh 公钥直接下载代码

接下来是关键的一步:配置SSH密钥。目标是让Jenkins所在的机器能以root身份免密拉取GitLab仓库的代码,这是后续所有自动化操作的基础。 在GitLab服务器上生成公钥,一路回车,不要输入密码:
ssh-keygen
然后查看公钥内容:
cat .ssh/id_rsa.pub

配置Jenkins自动拉取gitlab中的代码并部署方式

复制公钥信息,然后去GitLab的“部署密钥”设置里,把它添加进去。

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

配置完,可以在服务器上测试一下,看能否免密克隆:

配置Jenkins自动拉取gitlab中的代码并部署方式

git clone git@172.16.251.6:jcpt/wryjc.git
如果不需要输入密码就能成功克隆,说明配置生效了。

配置Jenkins自动拉取gitlab中的代码并部署方式

3、jenkins添加git用户root的私钥

公钥已经给GitLab了,那私钥自然要放在Jenkins这边,这样它才能用这把“钥匙”去开门。 先查看私钥内容:
cat .ssh/id_rsa
然后,在Jenkins的“凭据”管理里,添加一个新的“SSH用户名和私钥”类型的凭据,把刚才的私钥内容粘贴进去。

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

root 公钥在 gitlab,root 私钥在 jenkins,这样 jenkins 就可以直接拉取 gitlab 上的代码

这个配对关系理清了,后面的路就顺了。

配置Jenkins自动拉取gitlab中的代码并部署方式

4、在 Jenkins 创建新的任务

现在可以开始创建任务了。新建一个“自由风格”的项目。

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

在“源码管理”栏选择Git,填入仓库地址,然后在“凭据”下拉框里选中刚才添加的密钥。

配置Jenkins自动拉取gitlab中的代码并部署方式

保存之后,先手动点击“立即构建”试试水。

配置Jenkins自动拉取gitlab中的代码并部署方式

查看控制台输出,如果能看到“Success”字样,说明代码拉取成功了。

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

拉下来的代码默认存放在:

/var/lib/jenkins/workspace/

ls /var/lib/jenkins/workspace/

配置Jenkins自动拉取gitlab中的代码并部署方式

5、将代码发布到web服务器

代码拉下来了,接下来就是发布到Web服务器上。这里会用到构建后的操作,通过执行Shell命令,把代码同步到目标服务器。 实验拓扑图如下:

配置Jenkins自动拉取gitlab中的代码并部署方式

Web服务器需要先安装Apache并启动:
yum install httpd -y
systemctl restart httpd
测试一下,访问默认页面,确认服务正常。
http://ip     默认是80端口

配置Jenkins自动拉取gitlab中的代码并部署方式

6、准备自动部署web代码

要让Jenkins能免密登录到Web服务器,还得把它的公钥也拷过去:
ssh-copy-id 172.16.251.5

注:需要在哪台机器上自动发布代码,就需要让 jenkins 这台机器的 root 用户可以免密码登录到那台服务器上。

回到Jenkins,在项目的“构建”步骤里,选择“执行shell”,然后输入同步命令:

配置Jenkins自动拉取gitlab中的代码并部署方式

echo '当前 WORKSPACE 工作目录'
pwd
#'在构建时,默认会直接切换到 workspace 目录,所以可以直接将当前目录中的内容复制给被部署的服务器
scp -r ./* root@172.16.251.5:/var/www/html/
保存配置后,再手动构建一次。

配置Jenkins自动拉取gitlab中的代码并部署方式

查看控制台输出,确认scp命令执行成功,没有报错。

配置Jenkins自动拉取gitlab中的代码并部署方式

访问Web服务器,看到页面已经更新,说明手动部署流程走通了。

配置Jenkins自动拉取gitlab中的代码并部署方式

7、配置代码更新后自动触发jenkins进行部署

手动触发固然可行,但自动化部署的精髓在于“自动触发”。接下来,我们配置GitLab的Webhook,让代码一有变动,Jenkins就自动开始干活。 在Jenkins的任务配置里,找到“构建触发器”,勾选“Build when a change is pushed to GitLab”,然后复制生成的URL和Secret Token。

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

注:这个 secret token,只用于 gitlab 和 jenkins 上的 wryjc流水线,进行触发和沟通。

接下来,进入GitLab,先启用“允许对本地网络发送Webhook请求”的选项(如果Jenkins和GitLab在同一内网)。

配置Jenkins自动拉取gitlab中的代码并部署方式

然后,在项目的“设置”->“Webhook”里,填入Jenkins的URL和Token,保存。

配置Jenkins自动拉取gitlab中的代码并部署方式

点击“测试”,如果返回HTTP 200,说明配置成功。

配置Jenkins自动拉取gitlab中的代码并部署方式

回到Jenkins,也能看到触发的记录。

配置Jenkins自动拉取gitlab中的代码并部署方式

配置Jenkins自动拉取gitlab中的代码并部署方式

8、测试gitlab触发jenkins自动部署

是骡子是马,拉出来遛遛。在GitLab上提交一点改动,看看Jenkins是否会自动响应。
echo "hello this is my devops " >> index.html
git add index.html
git commit -m "modify index.html"
git push -u origin master
代码推送后,Jenkins的控制台立刻就有了反应,构建成功。

配置Jenkins自动拉取gitlab中的代码并部署方式

刷新Web页面,内容已经更新,自动部署成功。

配置Jenkins自动拉取gitlab中的代码并部署方式

总结

至此,一套完整的Jenkins+GitLab自动拉取、构建、部署的流水线就搭建完成了。整个过程的关键在于:SSH密钥的配对、Jenkins任务的配置,以及Webhook的打通。掌握这几个核心环节,实现“提交即部署”的自动化流程,也就不是什么难事了。
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 jenkins
相关文章 更多
codex安装windows 命令行完整操作教程
codex安装windows 命令行完整操作教程

详解Windows环境下安装OpenAI Codex CLI的步骤,包括WSL环境检查、Node.js/npm配置、npm全局安装命令及首次启动验证,适合开发者快速上手。

NativeRest环境配置要求与完整操作教程
NativeRest环境配置要求与完整操作教程

学习如何配置 NativeRest REST API 客户端。涵盖 Windows/macOS/Linux 安装后的工作区创建、环境变量管理、请求编辑及响应查看步骤,帮助开发者快速完成基础环境搭建与连通性测试。

CSS设置透明度的注意事项有哪些?opacity属性详解
CSS设置透明度的注意事项有哪些?opacity属性详解

深入解析CSS中设置透明度的核心属性opacity,剖析子元素继承、事件穿透、层叠上下文等关键注意事项,并提供与rgba、hsla的实用选型对比。

flutter页面传值到后台的方法及示例代码
flutter页面传值到后台的方法及示例代码

flutter页面传值到后台的完整实现方法及示例代码,帮助读者快速掌握相关技术要点。

Java 8至21新特性代码写法对比:Lambda、Record与Switch
Java 8至21新特性代码写法对比:Lambda、Record与Switch

本文通过具体的旧版与新版代码对比,详细剖析Java 8引入的Lambda表达式、Java 14/16引入的Record类,以及Java 12至21逐步演进完善的Switch表达式与模式匹配,展示代码简化路径与避坑要点。

AI智能体开发培训课程学什么及实战内容介绍
AI智能体开发培训课程学什么及实战内容介绍

系统梳理AI智能体开发培训的核心知识模块、技术栈选型与典型实战项目,解析低代码平台与纯代码框架的差异,提供从零构建可落地智能体的完整学习与实施路径。

Java子类未实现抽象方法编译错误修复指南
Java子类未实现抽象方法编译错误修复指南

针对Java开发中常见的“子类未实现抽象方法”编译错误,深入分析报错原因,提供重写实现、声明抽象子类两种标准修复路径,并总结参数签名、访问修饰符等典型避坑要点。

解决PHP递归报错:max_nesting_level限制与内存溢出处理
解决PHP递归报错:max_nesting_level限制与内存溢出处理

遇到PHP递归报错时,不要盲目调大max_nesting_level。本文教你区分Xdebug限制、内存耗尽和正则递归错误,提供代码级的终止条件优化与迭代替代方案,彻底解决栈溢出问题。

PHP递归中static变量与引用传递的常见陷阱及调试
PHP递归中static变量与引用传递的常见陷阱及调试

本文分析PHP递归中static变量导致的状态污染及引用传递引发的共享数据修改问题。提供具体的代码复现、缓存键设计建议及调试打印技巧,帮助开发者避免隐蔽的逻辑错误。

PHP递归性能优化技巧与迭代替代方案
PHP递归性能优化技巧与迭代替代方案

解析PHP递归函数在树形数据处理中的性能瓶颈,提供预加载数据消除I/O、使用显式栈替代深层递归的实战方案,帮助开发者在代码可读性与执行效率间做出合理取舍。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。