【Gitlab】详细介绍与安装配置指南

 

🐇明明跟你说过:个人主页

🏅个人专栏:《未来已来:云原生之旅》🏅

🔖行路有良友,便是天堂🔖

目录

一、引言

1、什么是Gitlab

2、Gitlab起源

二、GitLab的核心功能

1、Git 仓库管理

2、持续集成与持续部署(CI/CD)

3、容器化与 Kubernetes 集成

三、GitLab的搭建与配置

1、系统要求

2、安装Gitlab

3、访问Gitlab


一、引言

1、什么是Gitlab

GitLab 是一个基于 Git 的 开源 版本控制系统和 DevOps 平台,旨在帮助开发团队进行 软件开发、版本控制、持续集成(CI)、持续部署(CD)、项目管理 等工作。它集成了 Git 版本控制、代码审查、问题追踪、CI/CD 流水线、容器化部署、监控等功能,旨在提高开发团队的协作效率和开发过程的自动化。

2、Gitlab起源

GitLab 的初创(2011 年)

  • GitLab 的最初版本由 Dmitriy Zaporozhets 开发,他是 GitLab 的创始人之一。当时,他只是为了满足个人和团队的需求,希望能有一个开源的 Git 仓库管理工具,能够自托管,避免依赖 GitHub 等公共平台。GitLab 最初是一个简单的 Git 存储库托管服务,提供 Web 界面和 Git 版本控制功能。

开源与扩展(2011-2013)

  • GitLab 很快从一个个人项目发展为一个社区项目,并发布了开源版本(GitLab Community Edition)。随着开源版本的发布,越来越多的开发者参与其中,并开始贡献代码。GitLab 开始加入更多功能,如:
    •  基本的 Git 仓库管理
    •  用户认证与权限控制
    •  集成的 Git 代码审查功能
    •  基本的合并请求功能

成立 GitLab 公司(2014 年)

  • 2014 年,GitLab 的创始团队决定成立 GitLab, Inc. 公司,正式将其推向商业化。通过发布更多功能并提供付费版本,GitLab 转向了商业模式。随着更多企业对 GitLab 提出需求,它开始添加更多企业级的功能,如:
    •  GitLab CI/CD:持续集成和持续部署功能
    •  权限和访问控制:企业级团队管理功能
    •  项目管理:问题追踪、里程碑、看板等功能
    •  安全功能:如静态应用安全测试(SAST)

   

GitLab 的发展与成就
从 2014 年起,GitLab 得到了广泛的关注,并开始成为许多开发团队和企业的首选工具。通过在 DevOps 和 CI/CD 领域的强大功能,GitLab 成为一个集成的工具链,涵盖了从代码托管到部署的各个环节。GitLab 提供了完整的 DevOps 流程,使开发团队能够实现自动化,减少手动操作。

  • 2015 年,GitLab 开始推出付费版本 GitLab Enterprise Edition (EE),提供更多的高级功能,如更强的权限控制和更高效的团队协作工具。
  • 2016 年,GitLab 达到了 100,000 用户,并推出了自托管的 GitLab 服务。
  • 2018 年,GitLab 发布了自己的容器扫描和安全功能,为开发者提供了更好的安全保障。
  • 2019 年,GitLab 成为了 "一站式 DevOps 平台",不仅支持 Git 仓库托管,还包含了完整的持续集成(CI)、持续部署(CD)、问题追踪、监控等功能。
  • 2020 年,GitLab 成为了 DevOps 的领军平台之一,并且其用户数量持续增长。

GitLab 的特点和创新
GitLab 的成功部分归因于其持续创新和完善的功能。以下是 GitLab 的一些关键特点和创新:

  • 开源和自托管:GitLab 提供免费的开源版本,并且支持自托管,允许用户在自己的服务器上运行 GitLab。
  • 全栈 DevOps:GitLab 提供从代码托管、CI/CD 到监控的全套功能,集成了 DevOps 流程,使开发、测试、部署更加自动化。
  • 高度可扩展性:GitLab 支持集群化和分布式架构,适用于大规模企业。
  • 企业级安全:提供静态应用安全测试(SAST)、动态应用安全测试(DAST)等安全功能,帮助开发团队发现并修复安全漏洞。

   

GitLab 的商业化与 IPO
GitLab 在发展过程中逐步实现商业化,并通过提供高级功能的付费版本获得收入。随着 GitLab 的成功,它开始吸引了大量的投资。

  • 2020 年,GitLab 成功完成了 D轮融资,并获得了超过 2 亿美元的资金,推动了其进一步的发展。
  • 2021 年,GitLab 启动了首次公开募股(IPO),并成功在 纳斯达克上市,成为公众公司。这一举动标志着 GitLab 作为 DevOps 领域领导者的地位得到了进一步巩固。

二、GitLab的核心功能


1、Git 仓库管理

GitLab 提供强大的 Git 仓库管理功能,支持 Git 的所有基础操作,帮助开发团队高效地管理代码版本。

  • Git 仓库托管:管理项目的 Git 仓库。
  • 分支管理:轻松创建、合并、删除分支,支持 Git flow。
  • 代码审查(Merge Requests):通过 Merge Request 进行代码审查和合并,促进团队协作。
  • 标签与版本管理:使用 Git 标签来标记特定的版本或发布。

   

2、持续集成与持续部署(CI/CD)

GitLab 是一个内置的 CI/CD 工具,允许开发团队通过自动化流程进行持续集成(CI)和持续部署(CD)。

  • 自动化构建和测试:通过 .gitlab-ci.yml 文件定义构建、测试、部署的流水线。
  • 并行执行和流水线控制:支持并行执行任务,并且可以按需控制任务流转。
  • 自动化部署:支持将代码自动部署到各种环境,如开发、测试、生产环境等。
  • 容器集成:支持与 Docker 和 Kubernetes 集成,构建、推送和部署 Docker 容器。

3、容器化与 Kubernetes 集成

GitLab 提供对容器化应用和 Kubernetes 的支持,帮助开发者实现更灵活和高效的应用部署。

  • 容器构建与推送:支持将 Docker 容器镜像构建并推送到容器注册中心(例如 Docker Hub、GitLab 容器注册中心)。
  • Kubernetes 集成:与 Kubernetes 集群集成,支持自动化部署到 Kubernetes 上,进行容器管理。

   

三、GitLab的搭建与配置

1、系统要求

在安装之前,请确保您的 Rocky Linux 系统满足以下要求:

  • 至少 4 GB 内存(推荐 8 GB 或更多)
  • 至少 2 核 CPU
  • 至少 4 GB 可用硬盘空间
  • 最低操作系统版本:Rocky Linux 8.x 或 CentOS 8.x(与 GitLab 兼容)

我们这里使用的是Rocky Linux 9 操作系统,配置8核16G内存 

2、安装Gitlab

首先,确保 Rocky Linux 系统是最新的:

sudo dnf update -y

安装依赖包:

sudo dnf install -y curl policycoreutils-python-utils openssh-server

  

添加 Gitlab 包仓库

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

 安装 Gitlab CE 

sudo  dnf install -y gitlab-ce

配置 Gitlab 

sudo gitlab-ctl reconfigure

配置完成后,Gitlab会自动启动,可以使用下面的命令检查服务状态

sudo gitlab-ctl status

如果主机已经开启防火墙,则需要放行80端口

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent && sudo firewall-cmd --reload

3、访问Gitlab

浏览器中输入http://主机IP 

用户名为root,使用以下命令查看密码

cat /etc/gitlab/initial_root_password

 登录进入主页,看到以下界面,至此安装完成

💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于云原生的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺

🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/945180.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mcnemar‘s exact test

与卡方检验的区别 与fisher exact test区别

从手术到诊断:Tekceleo超声波压电电机的全面医疗应用

在当今医疗领域,技术的不断创新正在推动传统医疗模式向更精准、更高效的方向转变。Tekceleo公司凭借其超声波压电电机技术,在医疗行业中逐步占据重要地位,为医疗操作的精准化与高效化做出了显著贡献。 Tekceleo超声波压电电机的技术特点 Tek…

Postman[3] 创建Get和Post请求

1.创建Get请求 以打开百度页面为例 链接:https://www.baidu.com/ 步骤: 1.1新建一个Collection 1.2Add Request 1.3填充请求的url 1.4 Send 1.5检查返回结果 注意:这里和我们打开网页看到的页面不一样,是因为缺少请求头&…

C# OpenCV机器视觉:姿态估计

在一个阴沉沉的下午,天空仿佛被一块巨大的灰色抹布盖住,细雨淅淅沥沥地洒着,阿强正在实验室里捣鼓他那些宝贝仪器,活像一个正在摆弄玩具的大孩子。突然,同事小杨像只没头的苍蝇一样冲了进来,脸上写满了困惑…

自动化测试模型(一)

8.8.1 自动化测试模型概述 在自动化测试运用于测试工作的过程中,测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象,总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。 线性测试 首先&#…

语音识别基础算法——动态时间规整算法

前言 动态时间规整算法,Dynamic Time Wraping,缩写为DTW,是语音识别领域的一个基础算法。 算法的提出 DTW 的提出是为了解决或尽量解决在语音识别当中的孤立词识别不正确的问题。该问题简单描述为:在识别阶段,将输入…

Word论文交叉引用一键上标

Word论文交叉引用一键上标 1.进入Microsoft word使用CtrlH快捷键或单击替换按钮 2.在查找内容中输入[^#] 3.鼠标点击,标签为“替换为:”的文本框,注意光标一定要打在图红色方框圈中的文本框中! 4.点击格式选择字体 5.勾选上标…

BLIP论文笔记

论文地址 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 论文思想 其实Clip就相当于只用了ITC

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成 现代项目经理的核心职责是提供可视性、保持团队一致,并确保团队拥有交付出色工作所需的资源。在过去几年中,由于分布式团队的需求不断增加,项目经理这一角色已迅速…

【交叉编译】sysstat 离线编译

1、下载源码 首先从下载: https://github.com/sysstat/sysstat/tags ,我直接下载最新的 2、配置交叉编译链 快速的方法就是把整个编译包全部放在Linux ,然后编辑~/.zshrc或者~/.bashrc,在最后加入: export PATH$PATH:/opt/arm-so…

算法题(20):买卖股票的最佳时机

审题: 需要返回最大利润值 思路: 首先我们需要看看股票走势图 我们看到股票走势图是把数据图像化了,那么我们观察这个股票图的时候发现他在某一段区间呈大体上升,而大体上升的前提就是没有出现比最低点更低的数据值。 根据这一点我…

IDEA XML 文件 SQL 提示

首先连接到对应的数据库。Database 里面要填写对应的数据库名称 配置当前项目的 SQL 方言,例如我这里是 MySQL 数据库管理系统,那么就选择 MySQL 此时就有 SQL 语法、表名、字段名等提示信息了

【STM32项目】基于STM32单片机温湿度PM2.5粉尘甲醛环境质量监测系统wifi【完整工程资料源码】

演示视频: 基于STM32单片机温湿度PM2.5粉尘甲醛环境质量监测系统 目录 演示视频: 一、项目简介: 1.1 功能介绍: 1.2 设计背景: 1.3 设计意义: 1.4 设计目的 二、硬件设计: 2.1 整体原理图设计&…

优化站群SEO:使用苹果CMS泛目录插件实现泛目录页面刷新不变

优化站群SEO:使用苹果CMS泛目录插件实现泛目录页面刷新不变 在当今数字营销环境中,搜索引擎优化(SEO)是提升网站流量和可见性的关键策略。苹果CMS作为一款灵活的内容管理系统,提供了丰富的插件功能,尤其是…

SAP PP bom历史导出 ALV 及XLSX 带ECN号

bom总数 104W PS超过XLSX上限 ,那就分文件 *&---------------------------------------------------------------------* *& Report ZRPT_PP_BOM_HIS_ECN *&---------------------------------------------------------------------* *& tcode:zpp0…

HAL 库句柄

一、命名方式:句柄是h为首字母,后面接协议名称 比如:huart、hadc、hi2c等 二、句柄类型: 这里拿huart举例,它的类型是UART_HandleTypeDef 进去stm32f1xx_hal_uart.h之后发现句柄的结构定义有部分是灰色的 灰色的当U…

JVM 性能监控工具之命令行篇

在 Java 开发过程中,性能监控和问题排查是开发者经常面临的任务。JDK 提供了一系列命令行工具,帮助开发者监控 JVM 运行状态、诊断内存泄漏、线程死锁等问题。本文将详细介绍这些工具的使用方法及其应用场景。 1 JDK性能监控工具 1.1 jps:查…

使用IDEA远程debug服务器上的jar包

仅用于测试环境调试,debug会阻塞 如生产jar包叫 test.jar ,部署的IP为10.184.136.18,端口为9999,idea的项目为local-network,照如下配置即可,仅红色部分需替换 弄完之后,打开debug,…

【SQL Server】教材数据库(3)

接着教材数据库(1)的内容,完成下列查询。 1 查询订购高等教育出版社教材的学生姓名 2 查询比所有高等教育出版社的图书都贵的图书信息 3 列出每位学生姓名、订购教材书名、价格。 1、嵌套查询:use jiaocai select student.nam…

你有哪些Deep Learning(RNN、CNN)调参的经验?

在深度学习的实践中,调参是一项既艺术又科学的工作。它不仅需要理论知识的支撑,还需要大量的实践经验。以下是一些在RNN和CNN模型调参中积累的经验,希望对正在这个领域摸索的朋友们有所帮助。 1. 从成熟的开源项目开始 对于初学者来说&…