GitLab简介

  GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

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

  组件

  

  1、repository:代码库,可以是硬盘或 NFS 文件系统

  2、Nginx:Web 入口

  3、数据库:包含以下信息:
    a、repository 中的数据(元数据,issue,合并请求 merge request 等)
    b、可以登录 Web 的用户(权限)

  4、Redis:缓存,负责分发任务

  5、sidekiq:后台任务,主要负责发送电子邮件。任务需要来自 Redis

  6、Unicorn:Gitlab 自身的 Web 服务器,包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作。工作内容包括: 
    a、通过检查存储在 Redis 中的用户会话来检查权限
    b、为 Sidekiq 制作任务
    c、从仓库(warehouse)取东西或在那里移动东西

  7、gitlab-shell:用于 SSH 交互,而不是 HTTP。gitlab-shell 通过 Redis 与 Sidekiq 进行通信,并直接或通过 TCP 间接访问 Unicorn

  8、gitaly:后台服务,专门负责访问磁盘以高效处理 git 操作,并缓存耗时操作。所有的 git 操作都通过 Gitaly 处理

  9、gitlab-workhorse:反向代理服务器,可以处理与 Rails 无关的请求(磁盘上的 CSS、JS 文件等),处理 Git Push/Pull 请求,处理到 Rails 的连接(修改由 Rails 发送的响应或发送给 Rails 的请求,管理 Rails 的长期 WebSocket 连接等)。

  10、mail_room:处理邮件请求。回复 GitLab 发出的邮件时,GitLab 会调用此服务

  Sidekiq、Unicorn 和 GitLab-shell 是 GitLab 中处理任务的 3 个程序。

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

GitLab社区版安装

  环境:CentOS 7.4

  内存:2G

  版本:社区版 gitlab-ce-11.3.12-ce.0.el7.x86_64.rpm
      

  1、安装必要的依赖项,还将在系统防火墙中打开HTTP和SSH访问

    安装命令:sudo yum install -y curl policycoreutils-python openssh-server

    激活命令:sudo systemctl enable sshd

    启用命令:sudo systemctl start sshd

    防火墙命令:sudo firewall-cmd --permanent--add-service=http

           sudo systemctl reload firewalld 

  2、安装Postfix以发送通知电子邮件

    安装命令:sudo yum install postfix

    激活命令:sudo systemctl enable postfix

    启用命令:sudo systemctl start postfix

  3、下载GitLab软件包(社区版),地址:https://packages.gitlab.com/gitlab/gitlab-ce

  4、安装GitLab软件包

    命令:rpm -ivh gitlab-ce-11.3.12-ce.0.el7.x86_64.rpm

    

    查看gitlab相关目录,命令:find / -name gitlab

    

    目录结构

      • /opt/gitlab/   ## 主目录
      • /etc/gitlab/   ## 放置配置文件
      • /var/opt/gitlab/   ## 各个组件
      • /var/log/gitlab/   ## 放置日志文件
      • /var/opt/gitlab/git-data/repositories   ##数据库的地址  
      • /var/opt/gitlab/postgresql/data   #gitlab组和项目的地址

    gitlab配置文件/etc/gitlab/gitlab.rb

  5、初始化gitlab,命令:gitlab-ctl reconfigure

    

  6、启动gitlab

    启动命令:gitlab-ctl start

    停止命令:gitlab-ctl stop

    重启命令:gitlab-ctl restart

    安装后,已经自动安装成开机启动服务

    服务启动命令:systemctl start gitlab-runsvdir.service

    服务停止命令:systemctl stop gitlab-runsvdir.service

    服务重启命令:systemctl restart gitlab-runsvdir.service

    服务开机启动命令:systemctl enable gitlab-runsvdir.service

    取消开机启动命令:systemctl disable gitlab-runsvdir.service

    服务查看命令:systemctl list-unit-files

  8、在浏览器使用ip地址进行访问,默认端口80,地址:http://ip,首次访问用户名是root,需要设置密码

    

    注意:启动后,访问可能出现502,可能是内存的原因,gitlab非常消耗内存(本例内存2g)

    

  9、设置完root用户的密码后,自动跳转到等路界面,使用root/password(password新设置的密码)

    

  10、登陆成功,主页

    

    

【Git】 GitLab服务器社区版安装与配置的更多相关文章

  1. influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控

    influxDB1.6版安装与配置(windows环境).Jmeter+influxDB+Grafana性能监控 来源:https://blog.csdn.net/SwTesting/article/ ...

  2. 基于svnserve的SVN服务器(windows下安装与配置)

    基于svnserve的SVN服务器(windows下安装与配置) 基于svnserve的SVN服务器(windows下安装与配置)关键字: svn 安装SVNserve 从http://subvers ...

  3. idea破解版安装、配置jdk以及建立一个简单的maven工程

    idea破解版安装.配置jdk,配置jdk环境变量以及建立一个简单的maven工程 一.idea破解版以及配置文件下载 下载网址:https://pan.baidu.com/s/1yojA51X1RU ...

  4. Gitlab 社区版安装部署和维护指南

    因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.这篇文章是在 Gitlab 7.4 的环境下配置的,相关内容可能已经过时. 后续做了一次迁移,将 Gitlab 升级到了 ...

  5. UOJ社区版安装多个Judger

    目录 声明 在同一台机器上安装 在不同机子上安装 声明 本文档非官方文档,为我试坑的经验总结. 本文编写时间 2019.11.04 ,并不一定会随UOJ更新而更新. 由于UOJ需要用SVN传题,并不那 ...

  6. MYSQL社区版安装手册

    https://www.jb51.net/article/140412.htm 在本教程中使用MySQL最新的MySQL服务8.0.11的社区绿色版本进行安装,绿色版为zip格式的包,安装分为以下四步 ...

  7. OpenAcc社区版安装教程(Linux版)(更新版)

    官方安装过程如下图所示 1.安装前 下载OpenAcc社区版 1,目前为止的最新版,平台是Linux,选择Linux x86-64. 我的服务器系统是CentOs 下载地址链接:https://www ...

  8. MySQL 社区版 安装小记

    根据刘铁猛老师的教程,自己折腾一下 1. 安装包准备 在Windows10 64bit上安装,故需要准备vc++ 2013和2015的Redistributable的包,搜索即有,无需细说. 示例数据 ...

  9. Ubuntu 16.04服务器 软件的安装及配置

    SSH的安装及配置 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则 ...

随机推荐

  1. django实现分页

    分页实现思路: 1.接口拉取库内数据,进行分页 2.页面实现分页组件,切换不同链接 一.接口实现: from django.core.paginator import Paginator p=Pagi ...

  2. 【Nodejs】ExpressのRequestとResponseの内容

    Request 对象 - request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性.常见属性有: req.app:当callback为外部文件时,用req.ap ...

  3. 虚拟机安装的ubutun全屏

    虚拟机下面安装了ubuntu系统,显示的屏幕只有那么一小块儿,不知道如何才能全屏,那么如何全屏呢?且看下面经验.   方法/步骤     打开虚拟机,并点击要更改成全屏的那个ubuntu系统的电源 我 ...

  4. SystemVerilog 带输出的task

    1.task 的定义,输出定义为数组. /*- genRndPkt(): Generates random packet with the given length.*/ task genRndPkt ...

  5. Shell教程 之运算符

    1.Shell基本运算符 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符: 关系运算符: 布尔运算符: 字符串运算符: 文件测试运算符. 原生bash不支持简单的数学运算,但是可以 ...

  6. Python+Selenium学习--浏览器设置

    场景 设置浏览器窗口的大小有下面两个比较常见的用途: 在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的灵活性及普遍适用性.比如可以跟sikuli结合,使用sik ...

  7. PAT L3-001 凑零钱(01背包dp记录路径)

    韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债.韩梅梅手边有104枚来自各个星球的硬币,需要请你帮她盘算一下,是 ...

  8. sqlserver打开对象资源管理器管理的帮助文档的快捷键

    sqlserver打开对象资源管理器管理的帮助文档的快捷键:Fn+F1

  9. 梦殇 chapter four

    有人说,当你为一个问题发愁时,投掷硬币是最好的解决办法.不是因为硬币本身,而是当抛在空中时,你心里希望它落在哪面.       或许是这样吧.     时间会淡化一切记忆么,总是不相信,时间是最好的解 ...

  10. rem初始化

    使用css实现rem适配,头部引入即可 adaptive.js !function(e, t) { function i() { o = , e.devicePixelRatioValue = o, ...