GitLab详解

目录

一、核心概念与定位

1.1、核心功能详解

[1.1.1, 代码管理与协作](#1.1.1, 代码管理与协作)

[1.1.2. CI/CD 流水线 (最核心优势)](#1.1.2. CI/CD 流水线 (最核心优势))

[1.1.3. 项目管理与敏捷协作](#1.1.3. 项目管理与敏捷协作)

[1.1.4. 安全与合规](#1.1.4. 安全与合规)

[1.1.5. 高级功能](#1.1.5. 高级功能)

[二,Jenkins 核心介绍](#二,Jenkins 核心介绍)

2.1、核心特点与核心功能

[2.1.1. 灵魂优势:插件生态](#2.1.1. 灵魂优势:插件生态)

[2.1.2. 核心能力](#2.1.2. 核心能力)

[2.1.3. 两种核心使用模式(新手必知)](#2.1.3. 两种核心使用模式(新手必知))

[2.2,软件工程中标准化的开发管理框架,核心包含 5 个循环阶段,各阶段作用如下:](#2.2,软件工程中标准化的开发管理框架,核心包含 5 个循环阶段,各阶段作用如下:)

三,部署GitLab


前言

GitLab 是一个端到端的 DevOps 平台 ,基于 Git 版本控制系统构建,提供从项目规划、代码托管、持续集成 / 部署 (CI/CD) 到监控和安全的完整软件开发工具链。它既可以通过 SaaS 模式使用 (如 gitlab.com),也支持私有化部署 (社区版 CE / 企业版 EE),让企业完全掌控代码与数据安全。

一、核心概念与定位

  • 基础定位 :GitLab 不仅仅是代码托管平台,而是完整的 DevOps 生命周期管理系统,覆盖 "计划→创建→验证→打包→发布→配置→监控" 全流程
  • 诞生时间:2011 年,由 GitLab Inc. 开发,使用 MIT 许可证 (社区版)
  • 核心价值一体化平台 减少工具切换,内置 CI/CD 开箱即用,私有化部署 满足企业安全需求,细粒度权限控制适应团队协作

1.1、核心功能详解

1.1.1, 代码管理与协作

  • Git 仓库管理:支持私有 / 内部 / 公共三种仓库类型,完整兼容 Git 所有命令
  • 分支管理:受保护分支、强制代码审查、合并请求 (MR,类似 GitHub 的 PR)
  • 代码审查:内联评论、讨论线程、批准规则、差异对比可视化
  • 权限控制:基于角色的访问控制 (RBAC),可按项目、分支、功能模块分配精确权限

1.1.2. CI/CD 流水线 (最核心优势)

  • 内置自动化 :无需额外工具,通过项目根目录的 .gitlab-ci.yml 文件定义流水线
  • 多阶段流程:构建→测试→打包→部署,支持并行执行与依赖管理
  • 容器集成:内置 Docker Registry,支持容器化构建与部署
  • 自动扩展:GitLab Runner 可分布式部署,自动扩展处理任务负载
1.1.3. 项目管理与敏捷协作
  • 问题跟踪:支持任务、bug、需求管理,自定义字段与工作流
  • 敏捷工具:看板 (Kanban)、史诗 (Epics)、里程碑 (Milestones)、迭代计划
  • Wiki 文档:每个项目自带 wiki,支持 Markdown 编辑与版本控制
  • 代码片段:分享与复用代码片段,支持语法高亮与评论

1.1.4. 安全与合规

  • 静态应用安全测试 (SAST):代码漏洞扫描,集成多种安全工具
  • 依赖扫描:检测第三方库中的安全漏洞
  • 容器扫描:检查 Docker 镜像中的安全隐患
  • 合规审计:全维度操作记录、合规模板库 (FedRAMP/SOC2)

1.1.5. 高级功能

  • GitLab Pages:免费静态网站托管,支持自定义域名
  • GitLab Duo:AI 辅助开发,代码补全、安全建议、文档生成
  • 包管理:支持 npm、Maven、PyPI 等多种包仓库
  • 监控集成:内置 Prometheus 监控,追踪应用性能与可用性

二,Jenkins 核心介绍

Jenkins 是一款开源的、基于 Java 开发的持续集成 / 持续交付(CI/CD)自动化服务器 ,也是目前全球使用最广泛的 CI/CD 工具之一。它的核心不是自带完整功能,而是极致的灵活性和丰富的插件生态------ 通过插件几乎可以对接所有开发工具(Git、Maven、Docker、K8s 等),适配各种技术栈和业务场景。

2.1、核心特点与核心功能

2.1.1. 灵魂优势:插件生态

Jenkins 本身是轻量核心框架,几乎所有功能都通过插件实现,这也是它能适配各种场景的关键:

  • 代码仓库插件:Git、SVN、GitLab、GitHub 等
  • 构建工具插件:Maven、Gradle、npm、Go 等
  • 部署插件:Docker、Kubernetes、SSH、Ansible 等
  • 测试 / 质量插件:JUnit、SonarQube(代码质量检测)等
  • 通知插件:Email、钉钉、企业微信、Slack 等
2.1.2. 核心能力
  • 持续集成(CI):代码提交后自动触发编译、单元测试、代码质量检测,快速发现问题
  • 持续交付 / 部署(CD):将通过测试的代码自动打包、发布到测试 / 生产环境
  • 分布式构建:支持多节点(Agent)分布式执行任务,分担主节点压力、提升效率
  • 流水线即代码 :通过 Jenkinsfile 将流水线逻辑写入代码,支持版本化管理
  • 多平台兼容:可运行在 Windows、Linux、macOS 上,适配所有主流编程语言
2.1.3. 两种核心使用模式(新手必知)
模式 特点 适用场景
自由风格项目 可视化配置,无需写代码 简单任务(单一脚本、基础构建),新手入门
声明式 Pipeline 基于 Jenkinsfile 代码配置 复杂流程(分支判断、并行执行、多阶段部署),企业级最佳实践

2.2,软件工程中标准化的开发管理框架,核心包含 5 个循环阶段,各阶段作用如下:

  1. **需求分析(Requirement Analysis)**是 SDLC 的起始环节,需明确用户需求、业务目标,梳理功能边界与约束条件,输出需求文档,为后续环节提供明确方向。

  2. **设计(Design)**基于需求制定技术方案,包括系统架构、数据库设计、界面原型等,明确开发的具体实现细节与技术规范。

  3. **实施(Implementation)**即编码开发阶段,开发人员依据设计方案编写代码,将设计转化为可运行的软件产品。

  4. **测试(Testing)**对开发完成的软件开展多维度测试(如单元测试、集成测试、系统测试等),验证功能是否符合需求,排查漏洞与缺陷。

  5. **演进(Evolution)**软件上线后,结合用户反馈、业务变化进行迭代优化、维护升级,持续完善产品以适配新的场景与需求。

三,部署GitLab

关闭防火墙等安全服务

systemctl stop firewalld setenforce 0

安装依赖环境
yum -y install policycoreutils openssh-server openssh-clients postfix
安装 gitlab
先准备好包,导入后

复制代码
yum install -y gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm

调整 gitlab 配置
vim /etc/gitlab/gitlab.rb
修改23行

GitLab 12.4.2(比较旧的版本),这个写法在12.x 及更早的 GitLab 版本中是合理的------ 因为旧版本(12.x 及之前)的配置逻辑和新版本(13+)不同;新版本则删掉nginx那一行。
重载配置,重启 gitlab
gitlab-ctl reconfigure
gitlab-ctl restart

浏览器访问

输入你的ip访问

第一次登录修改密码

然后输入用户名root加你的密码登录
GitLab 项目管理
点击【新建群组】 群组路径:devops 群组名称:devops 可见等级:公开


创建用户账户

编辑权限


创建项目

项目路径:选择 devops 组
项目名称: myweb
项目描述: myweb


Git 代码管理操作
初始化项目
cd /opt
git clone http://192.168.10.23/devops/myweb.git


初始化项目


配置Git用户标签


推送现有项目


推送代码
git push -u origin --all
git push -u origin --tags


SSH 免密配置

密钥


配置 GitLab 公钥

复制后去浏览器

将密钥输入。


切换 SSH 方式推送

复制链接

输入

输入git push 去浏览器查看

打开软件

复制并输入

提交身份信息

相关推荐
jekc8682 天前
Ubuntu-GitLab
服务器·ubuntu·gitlab
在路上走着走着3 天前
openclaw v2026.4.5 版本 提示 pairing required 解决方案
gitlab
Gazer_S7 天前
【GitLab npm Registry 非标准端口安装问题解决方案】
前端·npm·gitlab
-KamMinG7 天前
Gitlab版本升级方案-13.x到17.x
gitlab
菜鸡00019 天前
把一个项目传到 GitLab 的某个群组
大数据·elasticsearch·gitlab
AlbertS10 天前
记一次推送lfs失败不能迁移git仓库到新的gitlab的问题
git·ai·gitlab·lfs·rejected
日更嵌入式的打工仔10 天前
Windows 下 GitLab 完整使用指南
windows·gitlab
会飞的大可10 天前
Jenkins vs GitLab CI/CD:2026 企业级 CI/CD 工具深度选型评测
ci/cd·gitlab·jenkins
庭風11 天前
让 AI 从需求直接走到 MR:我开源了一个面向 GitLab 的工作流 MCP
gitlab
Sakuyu4346811 天前
Git-GitLab-JenKins
git·gitlab·jenkins