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. 常用的jquerymobil 站点

    http://www.jqmapi.com/api1.2/ Jquery Mobile 中文API站 https://codiqa.com/demo   jquerymobil UI编辑器 https ...

  2. Math.random控制随机数范围

    let minNum= parseInt(Math.random()*7) + 1 let maxNum= parseInt(Math.random()*83) + 1 生成7~83的随机整数

  3. for 与 for in

    在JavaScript中提供了两种方式迭代对象: (1)for 循环: (2)for..in循环: 使用for循环进行迭代数组对象,想必大家都已经司空见惯了.但是,使用for.. in循环时,大家可要 ...

  4. 如何解决make: Nothing to be done for `all' 的方法

    正常情况下,当文件没有更新且已经编译过时,再次make就会报这个错误,表示文件未更新,不需要编译. 如果异常情况没有检测到更新文件,或者想要强制重新编译,只需要make clean,再次编译即可.

  5. MysqlMd5加密

    MD5加密成功

  6. ASP.Net MVC 中a标签的onclick时间和href同时存在时候的处理

    问题出现: 本次项目在用到下载文件.导出文件的时候,需要在下载.导出之前进行判断,最初使用方式一.二,没能解决问题 方式一:使用href直接跳转controller方法,以下载为例: public A ...

  7. Framework7框架结构

    以2017年2月10日发布的Framework7 1.5.3为例. (function(){ 'use strict'; window.Framework7 = function(){ var app ...

  8. java 动手动脑解决问题

    1.Java的基本运行单位是类还是方法?是类,因为没有方法可以独立存在,方法在逻辑上属于类或属于对象. 2.类的组成成员?成员变量,成员方法. 3.成员变量的种类? byte short int lo ...

  9. day 31 表单标签,CSS

    一. HTML表单标签 HTML表单用于搜集不同类型的用户输入,然后把数据提交给服务器处理. 常用的表单标签: 标签 作用 form 所有表单标签的根标签 input 输入标签,包括单行输入框.密码框 ...

  10. 26-算法训练 Torry的困惑(基本型) 素数打表

      算法训练 Torry的困惑(基本型)   时间限制:1.0s   内存限制:512.0MB      问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.To ...