商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 配置Jenkins自动拉取gitlab中的代码并部署方式

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

  发布于2026-07-19 阅读(0)

扫一扫,手机访问

配置 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的打通。掌握这几个核心环节,实现“提交即部署”的自动化流程,也就不是什么难事了。
本文转载于:https://www.jb51.net/program/362224htp.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注