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 入口
- 数据库:包含以下信息:
- Redis:缓存,负责分发任务
- sidekiq:后台任务,主要负责发送电子邮件。任务需要来自 Redis
- Unicorn:Gitlab 自身的 Web 服务器,包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作。工作内容包括:
- 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 个程序。
3. 准备环境
- 操作系统:Centos 7(Minimal)
- 下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso 任选一个地区下的镜像地址进行下载