【Git】 GitLab服务器社区版安装与配置
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服务器社区版安装与配置的更多相关文章
- influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控
influxDB1.6版安装与配置(windows环境).Jmeter+influxDB+Grafana性能监控 来源:https://blog.csdn.net/SwTesting/article/ ...
- 基于svnserve的SVN服务器(windows下安装与配置)
基于svnserve的SVN服务器(windows下安装与配置) 基于svnserve的SVN服务器(windows下安装与配置)关键字: svn 安装SVNserve 从http://subvers ...
- idea破解版安装、配置jdk以及建立一个简单的maven工程
idea破解版安装.配置jdk,配置jdk环境变量以及建立一个简单的maven工程 一.idea破解版以及配置文件下载 下载网址:https://pan.baidu.com/s/1yojA51X1RU ...
- Gitlab 社区版安装部署和维护指南
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.这篇文章是在 Gitlab 7.4 的环境下配置的,相关内容可能已经过时. 后续做了一次迁移,将 Gitlab 升级到了 ...
- UOJ社区版安装多个Judger
目录 声明 在同一台机器上安装 在不同机子上安装 声明 本文档非官方文档,为我试坑的经验总结. 本文编写时间 2019.11.04 ,并不一定会随UOJ更新而更新. 由于UOJ需要用SVN传题,并不那 ...
- MYSQL社区版安装手册
https://www.jb51.net/article/140412.htm 在本教程中使用MySQL最新的MySQL服务8.0.11的社区绿色版本进行安装,绿色版为zip格式的包,安装分为以下四步 ...
- OpenAcc社区版安装教程(Linux版)(更新版)
官方安装过程如下图所示 1.安装前 下载OpenAcc社区版 1,目前为止的最新版,平台是Linux,选择Linux x86-64. 我的服务器系统是CentOs 下载地址链接:https://www ...
- MySQL 社区版 安装小记
根据刘铁猛老师的教程,自己折腾一下 1. 安装包准备 在Windows10 64bit上安装,故需要准备vc++ 2013和2015的Redistributable的包,搜索即有,无需细说. 示例数据 ...
- Ubuntu 16.04服务器 软件的安装及配置
SSH的安装及配置 SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则 ...
随机推荐
- 常用的jquerymobil 站点
http://www.jqmapi.com/api1.2/ Jquery Mobile 中文API站 https://codiqa.com/demo jquerymobil UI编辑器 https ...
- Math.random控制随机数范围
let minNum= parseInt(Math.random()*7) + 1 let maxNum= parseInt(Math.random()*83) + 1 生成7~83的随机整数
- for 与 for in
在JavaScript中提供了两种方式迭代对象: (1)for 循环: (2)for..in循环: 使用for循环进行迭代数组对象,想必大家都已经司空见惯了.但是,使用for.. in循环时,大家可要 ...
- 如何解决make: Nothing to be done for `all' 的方法
正常情况下,当文件没有更新且已经编译过时,再次make就会报这个错误,表示文件未更新,不需要编译. 如果异常情况没有检测到更新文件,或者想要强制重新编译,只需要make clean,再次编译即可.
- MysqlMd5加密
MD5加密成功
- ASP.Net MVC 中a标签的onclick时间和href同时存在时候的处理
问题出现: 本次项目在用到下载文件.导出文件的时候,需要在下载.导出之前进行判断,最初使用方式一.二,没能解决问题 方式一:使用href直接跳转controller方法,以下载为例: public A ...
- Framework7框架结构
以2017年2月10日发布的Framework7 1.5.3为例. (function(){ 'use strict'; window.Framework7 = function(){ var app ...
- java 动手动脑解决问题
1.Java的基本运行单位是类还是方法?是类,因为没有方法可以独立存在,方法在逻辑上属于类或属于对象. 2.类的组成成员?成员变量,成员方法. 3.成员变量的种类? byte short int lo ...
- day 31 表单标签,CSS
一. HTML表单标签 HTML表单用于搜集不同类型的用户输入,然后把数据提交给服务器处理. 常用的表单标签: 标签 作用 form 所有表单标签的根标签 input 输入标签,包括单行输入框.密码框 ...
- 26-算法训练 Torry的困惑(基本型) 素数打表
算法训练 Torry的困惑(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.To ...