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 去浏览器查看

打开软件

复制并输入

提交身份信息

相关推荐
极小狐9 小时前
极狐GitLab 18.7 版本发布,带来了改进的 GitLab Duo 分析仪表盘与密钥有效性校验、支持为聊天和智能体选择 AI 模型,以及更多新功能!
人工智能·gitlab
一叶飘零_sweeeet10 小时前
解决 GitLab 响应超时:清理日志 + 重启服务一步到位
gitlab
张小凡vip2 天前
数据挖掘(五) -----JupyterHub 使用gitlab的账号体系进行认证
人工智能·数据挖掘·gitlab
沛沛老爹3 天前
Web开发者转型AI:Agent Skills团队知识共享机制实战——从GitLab到AI技能库
java·人工智能·gitlab·rag·企业转型·web转ai
Apex Predator3 天前
gitlab备份与恢复
运维·gitlab
一念一花一世界3 天前
Arbess项目实战 - 基于GitLab搭建.net项目自动化流水线
ci/cd·gitlab·.net·arbess
techzhi4 天前
Apifox CLI + GitLab CI:接口自动化测试实施记录
java·ci/cd·kubernetes·gitlab·yapi·运维开发·fastapi
kida_yuan4 天前
【Linux】在树莓派上搭建自建 Git 服务(基于 GitLab)- 实战笔记与运维清单
运维·gitlab·树莓派
魏波.4 天前
使用A账号生成gitlab上某项目的token,如果A账号把修改密码,那token会失效吗?
gitlab·token
ICT董老师4 天前
在Ubuntu 22.04上使用GitLab和Jenkins部署CI/CD的完整过程
ubuntu·ci/cd·kubernetes·gitlab·jenkins