news 2026/6/15 20:29:47

搭建Jenkins+GitLab持续集成环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
搭建Jenkins+GitLab持续集成环境

软件开发中,“效率"与"稳定"是永恒的追求。瀑布模型的线性流程早已难以适配快速变化的市场需求,而敏捷开发的普及让持续集成(CI)成为团队协作的核心支撑——它能让开发人员频繁集成代码,通过自动化测试提前暴露问题,避免上线前的"集成灾难”。

今天,我们就来实战搭建一套基于Jenkins+GitLab的企业级持续集成与代码管理环境。从核心概念解析到环境部署,再到项目实战与集成配置,全程手把手带你搞定,让团队协作效率翻倍!

一、先搞懂核心概念:为什么需要Jenkins+GitLab?

在动手前,我们先理清几个关键概念,避免盲目操作~

1. 软件开发的"前世今生"

  • 软件开发生命周期(SDLC):一套完整的开发流程,包括需求分析、设计、实现、测试、进化(维护优化)5个核心阶段。
  • 瀑布模型:早期的线性开发模型,优点是简单易懂,但缺点致命——阶段固定、文档冗余、用户直到末期才能看到成果,完全无法应对需求变更。
  • 敏捷开发:现在主流的开发模式,核心是"迭代+增量"——把大项目拆成多个小周期,每个周期交付完整功能,既能早期交付、降低风险,又能快速响应市场需求。

2. 持续集成(CI):敏捷开发的"核心引擎"

持续集成的本质是频繁将代码集成到主干,核心要求是:代码集成前必须通过自动化测试。

完整流程:

  1. 开发人员提交代码到GitLab(代码仓库)
  2. 仓库触发自动化测试
  3. 构建:将源码转换为可运行的应用包
  4. 第二轮全面测试(避免遗漏问题)
  5. 部署到测试/生产服务器
  6. 异常时快速回滚

而实现这套流程的核心工具组合就是:

  • GitLab:负责代码的集中管理、团队协作(权限控制、合并请求等);
  • Jenkins:负责自动化构建、测试、部署,是持续集成的"执行器"。

二、实战部署GitLab:代码管理的"中央仓库"

GitLab是开源免费的代码仓库管理工具,支持部署到自己的服务器,安全性和可控性拉满。下面开始实操部署(基于CentOS 7/8)。

1. 环境准备

  • 虚拟机/服务器:至少4G内存(GitLab对内存要求较高)
  • 操作系统:CentOS 7/8
  • 关闭防火墙和核心防护(避免端口占用)

2. 部署步骤(全程命令行实操)

(1)基础环境配置
# 关闭防火墙并设置开机不自启systemctl disable firewalld--now# 关闭核心防护setenforce0# 安装依赖环境(SSH、邮件支持等)yum-yinstallpolicycoreutils openssh-server openssh-clients postfix# 启动SSH服务并设置开机自启systemctlenablesshd&&systemctl start sshd# 启动postfix(支持GitLab发信功能,比如密码重置邮件)systemctlenablepostfix&&systemctl start postfix
(2)安装GitLab

上传GitLab安装包(推荐版本:gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm),执行安装命令:

yuminstall-ygitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
(3)修改GitLab配置

编辑配置文件,设置访问地址和端口:

vim/etc/gitlab/gitlab.rb

找到以下两行并修改(根据自己的服务器IP调整):

external_url'http://192.168.10.23:82'# 访问地址+端口nginx['listen_port']=82# 监听端口
(4)重载配置并重启GitLab
gitlab-ctl reconfigure# 重载配置(耐心等待,可能需要几分钟)gitlab-ctl restart# 重启服务
(5)验证部署

打开浏览器,访问http://192.168.10.23:82,会看到设置管理员(root)密码的页面,设置密码后即可登录(默认用户名root)。

三、GitLab项目管理实战:团队协作从这里开始

GitLab的核心价值是团队协作与代码管控,我们需要创建群组、用户、项目,并配置权限,让团队成员有序协作。

1. 核心概念

  • 群组(Group):对应开发团队(比如"devops团队");
  • 项目(Project):对应具体的软件项目(比如"myweb网站");
  • 成员(Member):团队中的用户账户,通过权限控制访问范围。

2. 实操步骤

(1)创建开发群组
  1. 登录GitLab后,点击【新建群组】;
  2. 填写信息:
    • 群组路径:devops(访问URL中显示);
    • 群组名称:devops(显示名称);
    • 可见等级:公开(根据项目需求选择,私有/内部/公开);
  3. 点击【创建群组】。
(2)创建用户账户
  1. 进入【管理区域】→【新建用户】;
  2. 填写信息:姓名(zhangsan)、用户名(zhangsan)、电子邮箱(zhangsan@gitlab.com);
  3. 创建后,编辑用户密码(比如abc@1234)。
(3)创建项目
  1. 进入【管理区域】→【新建项目】;
  2. 填写信息:
    • 项目路径:选择devops群组(归属团队);
    • 项目名称:myweb(项目名称);
    • 可见等级:公开;
  3. 点击【创建项目】。
(4)分配项目权限

权限控制是团队协作的关键,GitLab提供5种角色(从低到高):Guest→Reporter→Developer→Maintainer→Owner。

方式1:直接添加成员到项目

  1. 进入项目→【设置】→【成员】;
  2. 搜索用户zhangsan,选择权限为"Maintainer(主程序员)";
  3. 点击【添加到项目】。

方式2:通过群组添加成员

  1. 进入群组→【成员】;
  2. 添加用户zhangsan,权限设为"Maintainer";
  3. 该用户将自动获得群组下所有项目的对应权限(适合团队统一管理)。

四、Git代码管理实操:开发人员的日常操作

项目创建完成后,开发人员需要通过Git提交代码、拉取更新,这里重点讲基础操作和SSH免密配置(避免每次提交都输密码)。

1. 基础操作:提交代码到GitLab

(1)用户登录与配置
  1. 退出root账户,用zhangsan(密码abc@1234)登录GitLab;
  2. 首次登录需强制修改密码(按提示操作即可)。
(2)克隆项目到本地
# 进入本地目录(比如/opt)cd/opt# 克隆GitLab项目(HTTP方式)gitclone http://192.168.10.23/devops/myweb.git
(3)初始化项目并提交代码
# 进入项目目录cdmyweb# 创建README.md文件touchREADME.md# 添加文件到暂存区gitaddREADME.md# 配置Git用户信息(与GitLab账户一致)gitconfig--globaluser.email"zhangsan@gitlab.com"gitconfig--globaluser.name"zhangsan"# 提交代码(备注提交信息)gitcommit-m"add README文件"# 推送到GitLab主干分支gitpush-uorigin master
(4)推送现有本地项目

如果本地已有项目,需关联GitLab仓库:

cd~/本地项目目录# 关联GitLab远程仓库gitremoteaddorigin http://192.168.10.23/devops/myweb.git# 推送所有代码和标签gitpush-uorigin--allgitpush-uorigin--tags

2. SSH免密配置:提升开发效率

HTTP方式每次推送都需输密码,SSH方式可免密登录,推荐配置:

(1)生成SSH密钥对
# 生成RSA密钥(邮箱为GitLab账户邮箱)ssh-keygen-trsa-C"zhangsan@gitlab.com"-b4096# 一路回车,使用默认路径和空密码
(2)配置GitLab公钥
  1. 查看公钥内容:
    cat~/.ssh/id_rsa.pub
  2. 登录GitLab→点击用户头像→【设置】→【SSH密钥】;
  3. 粘贴公钥内容,点击【增加密钥】。
(3)切换SSH方式推送代码
# 查看当前远程仓库方式(默认是HTTP)gitremote show origin# 删除HTTP方式gitremote remove origin# 添加SSH方式(注意路径格式:git@IP:群组/项目.git)gitremoteaddorigin git@192.168.10.23:devops/myweb.git# 验证并测试推送echo'<h3>测试SSH推送</h3>'>>index.htmlgitaddindex.htmlgitcommit-m"测试SSH免密推送"gitpush# 无需输密码,直接推送成功

五、Jenkins与GitLab集成:打通持续集成第一步

Jenkins是持续集成的核心工具,负责拉取GitLab代码、自动化构建、测试、部署。下面我们完成Jenkins与GitLab的集成配置。

1. 环境规划

服务器名称IP地址安装软件
代码托管服务器192.168.10.23GitLab-12.4.2
持续集成服务器192.168.10.13Jenkins、JDK、Maven、Git

2. 核心集成流程

  1. 开发人员提交代码到GitLab;
  2. Jenkins自动拉取代码,完成编译、测试、打包;
  3. Jenkins将构建结果部署到测试/生产服务器。

3. Jenkins凭证配置(关键步骤)

Jenkins需要通过凭证访问GitLab,支持两种方式:

(1)用户密码凭证(简单易配置)
  1. 安装Git插件:Jenkins→【系统管理】→【插件管理】→搜索"Git Plugin"→安装并重启;
  2. 安装Git工具:在Jenkins服务器执行yum install git -y
  3. 配置凭证:
    • 进入Jenkins→【凭证】→【系统】→【全局凭证】→【添加凭证】;
    • 选择"Username with password"类型;
    • 输入GitLab用户名(zhangsan)、密码,描述填写"gitlab-auth-password";
    • 保存即可。
(2)SSH密钥凭证(更安全)
  1. 在Jenkins服务器生成SSH密钥对(同前文步骤);
  2. 将公钥添加到GitLab(同前文SSH配置);
  3. 在Jenkins添加凭证:
    • 选择"SSH Username with private key"类型;
    • 用户名填写GitLab用户名(zhangsan);
    • 粘贴私钥内容(cat ~/.ssh/id_rsa查看);
    • 保存。

4. 测试集成是否成功

  1. 新建Jenkins项目:【新建任务】→输入名称"test01"→选择"自由风格软件项目";
  2. 配置源码管理:
    • 选择"Git";
    • 仓库URL填写GitLab项目地址(HTTP或SSH均可,需与凭证类型匹配);
    • 选择对应的凭证;
  3. 点击【立即构建】,查看构建日志:如果显示"Successfully cloned",说明Jenkins已成功拉取GitLab代码,集成成功!

六、总结与展望

通过本文的实战操作,我们已经完成了一套完整的Jenkins+GitLab持续集成与代码管理环境

  • 理论层面:理解了SDLC、敏捷开发、持续集成的核心概念;
  • 实操层面:部署了GitLab服务器,创建了团队群组、用户、项目,配置了权限;
  • 开发层面:掌握了Git代码提交、SSH免密配置的日常操作;
  • 集成层面:完成了Jenkins与GitLab的凭证对接,为自动化流程打下基础。

这套环境的价值在于:

  1. 代码集中管理:避免代码分散丢失,支持版本回溯;
  2. 团队有序协作:通过权限控制,不同角色各司其职;
  3. 自动化流程:后续可扩展Jenkins流水线(Pipeline),实现代码提交后自动构建、测试、部署,真正实现"提交即部署"。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:01:15

ARM平台CAN总线通信配置:图解说明流程

ARM平台CAN通信实战&#xff1a;从零配置到稳定收发你有没有遇到过这样的情况&#xff1f;代码烧录成功&#xff0c;CAN总线却“静如止水”——既收不到数据&#xff0c;也看不到波形。用示波器一测&#xff0c;TX引脚毫无动静&#xff1b;换一个节点接入&#xff0c;别人能通&…

作者头像 李华
网站建设 2026/6/15 15:04:03

AI科普:全面了解LLM上下文工程(一):从提示词到上下文工程

相信大家都曾经使用过大语言模型&#xff08;LLM&#xff09;&#xff0c;那你很可能听说过“提示词工程&#xff08;prompt engineering&#xff09;”。在早期&#xff0c;想要获得理想的输出结果&#xff0c;关键就是设计出一个完美的提示词。 对于一些简单的聊天机器人或文…

作者头像 李华
网站建设 2026/6/15 13:38:05

终极指南:5步构建区块链公益信任体系

终极指南&#xff1a;5步构建区块链公益信任体系 【免费下载链接】blockchain dvf/blockchain: 此链接指向一个关于区块链技术的学习资源或实现代码&#xff0c;但无法直接获取详细信息&#xff0c;通常这类项目会涉及区块链的基础架构、协议设计或者特定应用场景的链上解决方案…

作者头像 李华
网站建设 2026/6/15 15:22:00

PE Tools 终极指南:从零开始掌握 Windows 可执行文件分析

想要深入了解 Windows 程序的工作原理吗&#xff1f;PE Tools 正是你需要的专业工具&#xff01;这款诞生于 2002 年的老牌逆向工程软件&#xff0c;至今仍是分析 PE&#xff08;可移植可执行&#xff09;文件的首选利器。无论你是安全研究员、软件开发者&#xff0c;还是对程序…

作者头像 李华
网站建设 2026/6/15 15:52:39

基于51单片机的LCD1602多行显示:系统学习教程

从零开始玩转51单片机与LCD1602&#xff1a;如何让两行小屏幕说出你的话&#xff1f;你有没有试过&#xff0c;把一块小小的液晶屏接到单片机上&#xff0c;然后看着它稳稳地显示出“Hello World!”&#xff1f;那一刻的感觉&#xff0c;就像第一次点亮LED那样令人兴奋——只不…

作者头像 李华