当前位置: 首页 > news >正文

搭建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),实现代码提交后自动构建、测试、部署,真正实现"提交即部署"。
http://www.jsqmd.com/news/170443/

相关文章:

  • 2025锌钢护栏厂家推荐排行榜:从产能到专利的权威对比 - 爱采购寻源宝典
  • 人大金仓JDBC驱动8.6.0版本终极指南:快速连接KingBaseES数据库
  • 超详细版Keil5配置教程:实现STM32F103芯片识别
  • Git blame定位TensorFlow代码变更责任人
  • btop4win:Windows系统监控的终极指南
  • Manus类AI Agent的核心工作原理
  • git log查看TensorFlow项目历史提交记录技巧
  • 教育科技测试:在线学习平台的稳定性挑战与应对策略‌
  • 如何监控TensorFlow-v2.9训练过程中的GPU利用率
  • Windows系统下proteus8.17下载及安装超详细版
  • Transformer模型详解系列(一):在TensorFlow-v2.9中搭建基础结构
  • 2025视频加速服务商推荐/直播加速服务商推荐综合榜单 - 栗子测评
  • GitHub数据卡片终极指南:快速打造个性化开发者档案
  • 清华镜像源配置conda加速TensorFlow环境搭建
  • 最远点采样加速---QuickFPS
  • PyTorch与TensorFlow共用GPU显存资源调度策略
  • 5分钟实现DLSS模拟:非NVIDIA显卡也能享受帧生成技术
  • KoboldCpp终极指南:5分钟开启你的本地AI创作之旅
  • RuoYi-App多端开发实战:从零到一的快速部署指南
  • 免费 AI 修复软件火爆出圈!修复效果惊艳,老照片秒变高清大片
  • 2025压缩车厂家推荐排行榜:从产能到专利的权威实力比拼 - 爱采购寻源宝典
  • 前端开发技巧,零基础入门到精通,收藏这篇就够了
  • Manus技术核心实现细节
  • 【无锡学术会议】第六届高性能大数据暨智能系统国际会议(HDIS 2025)
  • 云安全审计终极指南:AWS、Azure、GCP安全评估实战解析
  • 2025羊绒纱线回收厂家推荐排行榜:产能与环保双维度对比 - 爱采购寻源宝典
  • diskinfo监控NVMe健康状态预警TensorFlow故障
  • LANDrop跨平台文件传输终极指南:从零开始快速上手
  • 如何快速清理Windows多余图标:Drive Icon Manager完整使用指南
  • 利用Jupyter魔法命令分析TensorFlow模型性能瓶颈