【Git】 GitLab服务器社区版安装与配置

时间:2023-03-08 15:39:15

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

  组件

  【Git】 GitLab服务器社区版安装与配置

  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
      【Git】 GitLab服务器社区版安装与配置

  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

    【Git】 GitLab服务器社区版安装与配置

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

    【Git】 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

    【Git】 GitLab服务器社区版安装与配置

  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,需要设置密码

    【Git】 GitLab服务器社区版安装与配置

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

    【Git】 GitLab服务器社区版安装与配置

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

    【Git】 GitLab服务器社区版安装与配置

  10、登陆成功,主页

    【Git】 GitLab服务器社区版安装与配置