欢迎光临
我们一直在努力

搭建Jenkins+GitLab持续集成环境

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

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

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

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

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

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

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

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

完整流程:

  • 开发人员提交代码到GitLab(代码仓库)
  • 仓库触发自动化测试
  • 构建:将源码转换为可运行的应用包
  • 第二轮全面测试(避免遗漏问题)
  • 部署到测试/生产服务器
  • 异常时快速回滚
  • 而实现这套流程的核心工具组合就是:

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

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

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

    1. 环境准备

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

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

    (1)基础环境配置

    # 关闭防火墙并设置开机不自启
    systemctl disable firewalld –now
    # 关闭核心防护
    setenforce 0

    # 安装依赖环境(SSH、邮件支持等)
    yum -y install policycoreutils openssh-server openssh-clients postfix

    # 启动SSH服务并设置开机自启
    systemctl enable sshd && systemctl start sshd
    # 启动postfix(支持GitLab发信功能,比如密码重置邮件)
    systemctl enable postfix && systemctl start postfix

    (2)安装GitLab

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

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

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

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

  • 进入项目→【设置】→【成员】;
  • 搜索用户zhangsan,选择权限为"Maintainer(主程序员)";
  • 点击【添加到项目】。
  • 方式2:通过群组添加成员

  • 进入群组→【成员】;
  • 添加用户zhangsan,权限设为"Maintainer";
  • 该用户将自动获得群组下所有项目的对应权限(适合团队统一管理)。
  • 四、Git代码管理实操:开发人员的日常操作

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

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

    (1)用户登录与配置
  • 退出root账户,用zhangsan(密码abc@1234)登录GitLab;
  • 首次登录需强制修改密码(按提示操作即可)。
  • (2)克隆项目到本地

    # 进入本地目录(比如/opt)
    cd /opt
    # 克隆GitLab项目(HTTP方式)
    git clone http://192.168.10.23/devops/myweb.git

    (3)初始化项目并提交代码

    # 进入项目目录
    cd myweb
    # 创建README.md文件
    touch README.md
    # 添加文件到暂存区
    git add README.md
    # 配置Git用户信息(与GitLab账户一致)
    git config –global user.email "zhangsan@gitlab.com"
    git config –global user.name "zhangsan"
    # 提交代码(备注提交信息)
    git commit -m "add README文件"
    # 推送到GitLab主干分支
    git push -u origin master

    (4)推送现有本地项目

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

    cd ~/本地项目目录
    # 关联GitLab远程仓库
    git remote add origin http://192.168.10.23/devops/myweb.git
    # 推送所有代码和标签
    git push -u origin –all
    git push -u origin –tags

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

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

    (1)生成SSH密钥对

    # 生成RSA密钥(邮箱为GitLab账户邮箱)
    ssh-keygen -t rsa -C "zhangsan@gitlab.com" -b 4096
    # 一路回车,使用默认路径和空密码

    (2)配置GitLab公钥
  • 查看公钥内容:cat ~/.ssh/id_rsa.pub
  • 登录GitLab→点击用户头像→【设置】→【SSH密钥】;
  • 粘贴公钥内容,点击【增加密钥】。
  • (3)切换SSH方式推送代码

    # 查看当前远程仓库方式(默认是HTTP)
    git remote show origin
    # 删除HTTP方式
    git remote remove origin
    # 添加SSH方式(注意路径格式:git@IP:群组/项目.git)
    git remote add origin git@192.168.10.23:devops/myweb.git
    # 验证并测试推送
    echo '<h3>测试SSH推送</h3>' >> index.html
    git add index.html
    git commit -m "测试SSH免密推送"
    git push # 无需输密码,直接推送成功

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

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

    1. 环境规划

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

    2. 核心集成流程

  • 开发人员提交代码到GitLab;
  • Jenkins自动拉取代码,完成编译、测试、打包;
  • Jenkins将构建结果部署到测试/生产服务器。
  • 3. Jenkins凭证配置(关键步骤)

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

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

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

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

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

    这套环境的价值在于:

  • 代码集中管理:避免代码分散丢失,支持版本回溯;
  • 团队有序协作:通过权限控制,不同角色各司其职;
  • 自动化流程:后续可扩展Jenkins流水线(Pipeline),实现代码提交后自动构建、测试、部署,真正实现"提交即部署"。
  • 赞(0)
    未经允许不得转载:171主机测评 » 搭建Jenkins+GitLab持续集成环境
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址