【Linux】【Gitlab】 Gitlab 社区版(免费)搭建步骤

1. 简介

IT源码版本管理工具,常见的版本管理有VSS(Visual Source Safe)、CVS、SVN、GIT;本篇主要介绍GIT,分布式源码版本管理工具,并在此基础上搭建起来的web服务GIT目前开源市场有GitHub、码云、GitLab;作为企业基本使用版本管理工具,考虑安全,时常内部搭建GIT管理仓库,今天给大家介绍的师GitLab的社区版(免费)的安装&使用,代码安全是研发部门的重心之一,其中涉及日常的升级、备份、迁移/恢复等问题。给维护人员提供资料参考

2. GitLab系统架构

当~git在图片中引用时,它表示git用户的主目录,通常是/ home / git;

GitLab主要以/home/git用户身份安装在用户主目录中git。在主目录中是gitlabhq服务器软件所在的位置以及存储库(尽管存储库位置是可配置的);

裸存储库位于/home/git/repositories。GitLab是一个ruby on rails应用程序,因此可以通过研究ruby on rails应用程序的工作原理来学习内部工作的细节;

为了通过SSH提供存储库,有一个名为gitlab-shell的附加应用程序,它安装在/home/git/gitlab-shell;

组件说明:

 

 

  • repository:代码库,可以是硬盘或 NFS 文件系统
  • Nginx:Web 入口
  • 数据库:包含以下信息: 
    • repository 中的数据(元数据,issue,合并请求 merge request 等)
    • 可以登录 Web 的用户(权限)
  • Redis:缓存,负责分发任务
  • sidekiq:后台任务,主要负责发送电子邮件。任务需要来自 Redis
  • Unicorn:Gitlab 自身的 Web 服务器,包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作。工作内容包括: 
    • 通过检查存储在 Redis 中的用户会话来检查权限
    • 为 Sidekiq 制作任务
    • 从仓库(warehouse)取东西或在那里移动东西
  • gitlab-shell:用于 SSH 交互,而不是 HTTP。gitlab-shell 通过 Redis 与 Sidekiq 进行通信,并直接或通过 TCP 间接访问 Unicorn
  • gitaly:后台服务,专门负责访问磁盘以高效处理 git 操作,并缓存耗时操作。所有的 git 操作都通过 Gitaly 处理
  • gitlab-workhorse:反向代理服务器,可以处理与 Rails 无关的请求(磁盘上的 CSS、JS 文件等),处理 Git Push/Pull 请求,处理到 Rails 的连接(修改由 Rails 发送的响应或发送给 Rails 的请求,管理 Rails 的长期 WebSocket 连接等)。
  • mail_room:处理邮件请求。回复 GitLab 发出的邮件时,GitLab 会调用此服务Sidekiq、Unicorn 和 GitLab-shell 是 GitLab 中处理任务的 3 个程序。

GitLab 应用程序是上述所有组件的集合。

3. 准备环境

  • CPU:4核
  • 更换Yum的Centos-Base.repo(个人喜好)
    • 下载wget:yum install -y wget
    • 备份默认的Yum:mv  /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    • 下载阿里YUM配置到yum.repos.d目录:wget -O /etc/yum.repos.d/C
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值