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

打开软件

复制并输入

提交身份信息

相关推荐
linweidong21 小时前
解决gitlab配置Webhooks,提示 Invalid url given的问题
gitlab·notepad++
隔壁阿布都1 天前
Docker 离线安装 GitLab 完整步骤
docker·gitlab
深紫色的三北六号2 天前
基于 Git 某个分支创建一个全新的仓库(GitHub / GitLab)
git·gitlab·github
顾安r3 天前
12.27 脚本网页 GITHUB推送教程
linux·css·html·gitlab·github
sinat_384241093 天前
HarmonyOS音乐播放器开发实战:从零到一打造完整鸿蒙系统音乐播放器应用 2
华为·gitlab·intellij-idea·harmonyos·visual studio·webstorm
TimberWill4 天前
GitLab 仓库拷贝并创建为新项目
gitlab
hkNaruto4 天前
【gitlab】通过 `pre-receive` 钩子控制 MR 合并时的分支路径合并方向,阻止未经允许的合并路径
elasticsearch·gitlab·mr
JiayinX5 天前
CI/CD流程搭建【Docker+jenkins+gitlab+Webhook】01
ci/cd·docker·gitlab·jenkins·webhook
甜甜不吃芥末5 天前
GitLab 配置 SSH 密钥完整教程
运维·ssh·gitlab