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. 过滤sql特殊字符方法集合

    /// <summary>     /// 过滤不安全的字符串    /// </summary>     /// <param name="Str" ...

  2. Python os.sep()

    os.sep是什么 python是跨平台的.在Windows上,文件的路径分隔符是'\',在Linux上是'/'. 为了让代码在不同的平台上都能运行,那么路径应该写'\'还是'/'呢? 使用os.se ...

  3. 1、list 的一些相关操作 2、增删改查 3、tuple 的操作 4、range

    1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 # lst = [1, "周杰伦" ...

  4. nexus(Maven仓库私服)的安装、配置、使用和仓库迁移

    简介 Nexus下载:点击进入 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一 ...

  5. 【转】iOS 自动化性能采集

      前言 对于iOS总体生态是比较封闭的,相比Android没有像adb这种可以查看内存.cpu的命令.在日常做性能测试,需要借助xcode中instruments查看内存.cpu等数据. 但是借助i ...

  6. [Java学习]反射机制(待续226)

    反射机制相关的类.反射机制的作用 获取Class类型对象的三种方式

  7. 常用的key和oid

    1.FortiGate Template-Network-Office-Fortigate-Session Count:key,fgSysSesCount   oid,.1.3.6.1.4.1.123 ...

  8. SQL创建删除索引

    --创建唯一聚集索引create unique clustered index pk_table1 on table1 (column1) --创建唯一非聚集索引create unique noncl ...

  9. 【linux】下Apache无法启动(8080端口被占用)

    Linux下8080端口被占用,apache无法启动. 打开终端输入netstat -lnp|grep 8080 发现竟然是tcp6 占用里,因此ipv6启用占用了端口. 1.打开/etc/sysct ...

  10. git常用命令二

    http://www.jianshu.com/p/08c3f1804b36http://backlogtool.com/git-guide/cn/stepup/stepup1_1.html   git ...