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. 六 json&pickle模块

    之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了 ...

  2. PERL 正则表达式简介

    来源:脚本之家 网址:http://www.jb51.net/article/17429.htm 一.简介 二.匹配操作符 三.模式中的特殊字符 1.字符+ 2.字符 []和[^] 3.字符 *和? ...

  3. 第四章 栈与队列(c2)栈应用:括号匹配

  4. NoHtml

    private string NoHtml(string Htmlstring) { if (string.IsNullOrWhiteSpace(Htmlstring)) return string. ...

  5. TCL脚本语言基础介绍

    Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...

  6. Lua的闭包详解(终于搞懂了)

    词法定界:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量,这种特征叫做词法定界 table.sort(names,functin (n1,n2) return grades[n1] ...

  7. linux命令学习之:systemctl

    systemctl命令是系统服务管理器指令,主要负责控制systemd系统和服务管理器,它实际上将 service 和 chkconfig 这两个命令组合到一起. CentOS 7.x开始,CentO ...

  8. 无法连接到localhost.其他信息:用户“sa”登录失败。(MicroSoft Sql Server,错误:18456)

    18456错误: 在安装的时候如果选择的身份验证模式为:Window身份验证模式,就会出现18456的错误. 解决方案: 使用windows身份验证登录之后,在下面红框上单击右键,点击属性: 点击属性 ...

  9. WebAPI支持Session

    1.在App_Start/WebApiConfig.cs中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它: public class ...

  10. vuex写法

    <template> <div class="hello"> <p>{{count}}</p> <p> <butt ...