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

 更新时间:2026年04月15日 09:49:26   作者:lee_yanyi  
本文介绍了如何配置Jenkins自动拉取GitLab中的代码并部署,包括安装插件、设置GitLab用户、Jenkins添加Git用户、在Jenkins创建新的任务、将代码发布到Web服务器、配置自动部署、配置代码更新后自动触发Jenkins进行部署等步骤

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

1、安装插件

安装以下插件:

Credentials Plugin(默认已经安装) #签名证书管理插件
Gitlab Plugin #拉取 gitlab 中的源代码
SSH Plugin #这个插件使用 SSH 协议远程执行 shell 命令。

选择对应的插件进行安装。

  • 选择之后点击安装

  • 安装之后重启jenkins

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

部署 key,让 root 用户可以不输入密码,获取 gitlab 上的源代码,该 key 是使用 git 下拉代码时使用。

在gitlab服务器生成公钥,一路回车,不要输入密码

ssh-keygen

查看公钥

cat .ssh/id_rsa.pub

复制公钥信息,点击添加密钥。

可以在服务器进行测试

git clone git@172.16.251.6:jcpt/wryjc.git

不用密码可以进行克隆,表示配置成功

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

查看私钥

cat .ssh/id_rsa

将私钥内容添加到 Jenkins(private key 选项)

粘贴私钥信息,点击添加

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

4、在 Jenkins 创建新的任务

新建项目:

源码管理选择git,输入代码地址,选择创建好的凭据。

保存之后,点击构建(Build Now)

查看控制台输出

显示success 表示成功。

代码存放位置在: /var/lib/jenkins/workspace/

ls /var/lib/jenkins/workspace/

查看项目文件

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

可以通过执行命令或脚本的方式进行代码发布,这里使用 root 用户在各个 web 服务器上发布代码。大家也可以建立一些普通用户如 www 或 apache 来发布。

如果使用普通用户发布代码,要保持所有服务器上的用户 id 一致,这样没有权限的问题。

实验拓扑图:

web服务器配置

安装apache服务,并启动

yum install httpd -y
systemctl restart httpd

测试访问

http://ip     默认是80端口

6、准备自动部署web代码

配置root用户无密码登陆

将jenkins服务器的ssh key 拷到web服务器

ssh-copy-id 172.16.251.5

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

添加构建步骤

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

添加执行命令

再次构建

查看控制台输出

访问web页面,成功。

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

添加构建触发器,使gitlab中代码更改时自动拉取最新的代码

复制该地址 http://172.16.251.6:8088/project/wryjc

点击生成token后,点击保存

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

修改gitlab配置,使Webhook可以对本地网络发送请求,修改后保存。

生成wryjc项目的webhook钩子,输入jenkins中的地址及token后保存。

测试webhook,显示200 提示成功

jenkins平台查看,显示成功。

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

在git服务器提交代码,验证是否可以自动部署:

echo "hello this is my devops " >> index.html
git add index.html
git commit -m "modify index.html"
git push -u origin master

jenkins控制台输出成功。

访问web页面,内容改变,表示自动部署成功。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在GitHub上修改他人分支的操作步骤

    在GitHub上修改他人分支的操作步骤

    在 GitHub 上修改他人的分支是一个常见的协作需求,但具体操作取决于你是否拥有目标仓库的直接推送权限,本文将详细介绍这两种情况的操作步骤,涵盖从克隆仓库到提交变更的完整流程,需要的朋友可以参考下
    2025-09-09
  • git忽略CRLF警告详解

    git忽略CRLF警告详解

    Git的CRLF警告提示行尾符差异(Windows用CRLF,Unix用LF),通常不影响代码功能,但跨平台协作或脚本文件可能引发问题,推荐配置core.autocrlf或.gitattributes统一处理,个人项目可忽略
    2025-09-09
  • 详解phpstudy linux web面板(小皮面板)V0.2版本正式发布

    详解phpstudy linux web面板(小皮面板)V0.2版本正式发布

    小皮面板,是由phpStudy官方团队针对Linux服务器开发推出的一款服务器环境搭建以及管理工具。这篇文章主要介绍了phpstudy linux web面板(小皮面板)V0.2版本正式发布,需要的朋友可以参考下
    2019-10-10
  • 将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程

    将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程

    这篇文章主要介绍了将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • HTTP协议入门_动力节点Java学院整理

    HTTP协议入门_动力节点Java学院整理

    这篇文章主要为大家详细介绍了HTTP协议入门的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • VSCode中ESLint插件修复以及配置教程

    VSCode中ESLint插件修复以及配置教程

    最近为vsocde配置Eslint出现了许多问题,我解决问题之后,觉得还是把这些坑都写清楚,方便学习前端的初学者,下面这篇文章主要给大家介绍了关于VSCode中ESLint插件修复以及配置教程的相关资料,需要的朋友可以参考下
    2022-12-12
  • 如何在vscode中正确使用正则表达式进行文档内容的替换编辑

    如何在vscode中正确使用正则表达式进行文档内容的替换编辑

    正则表达式是一种强大的模式匹配工具,它具有广泛的应用,包括数据清洗、文本处理、文件搜索等方面,这篇文章主要给大家介绍了关于如何在vscode中正确使用正则表达式进行文档内容的替换编辑,需要的朋友可以参考下
    2023-12-12
  • hexo博客开启https的SSL 证书实现过程

    hexo博客开启https的SSL 证书实现过程

    这篇文章主要为大家介绍了hexo 博客开启https的SSL证书实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • github打不开的问题分析及解决

    github打不开的问题分析及解决

    这篇文章主要介绍了github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • 高性能WEB开发(5) 减少请求,响应的数据量

    高性能WEB开发(5) 减少请求,响应的数据量

    上一篇中我们说到了 如何减少请求数,这次说说如何减少请求、响应的数据量(即在网络中传输的数据量),减少传输的数据量不仅仅可以加快页面加载速度,更可以节约服务器带宽,为你剩不少钱(好像很多机房托管都是按流量算钱的)。
    2010-05-05

最新评论