【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有默认安装,如果没有则 ...
随机推荐
- 过滤sql特殊字符方法集合
/// <summary> /// 过滤不安全的字符串 /// </summary> /// <param name="Str" ...
- Python os.sep()
os.sep是什么 python是跨平台的.在Windows上,文件的路径分隔符是'\',在Linux上是'/'. 为了让代码在不同的平台上都能运行,那么路径应该写'\'还是'/'呢? 使用os.se ...
- 1、list 的一些相关操作 2、增删改查 3、tuple 的操作 4、range
1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 # lst = [1, "周杰伦" ...
- nexus(Maven仓库私服)的安装、配置、使用和仓库迁移
简介 Nexus下载:点击进入 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一 ...
- 【转】iOS 自动化性能采集
前言 对于iOS总体生态是比较封闭的,相比Android没有像adb这种可以查看内存.cpu的命令.在日常做性能测试,需要借助xcode中instruments查看内存.cpu等数据. 但是借助i ...
- [Java学习]反射机制(待续226)
反射机制相关的类.反射机制的作用 获取Class类型对象的三种方式
- 常用的key和oid
1.FortiGate Template-Network-Office-Fortigate-Session Count:key,fgSysSesCount oid,.1.3.6.1.4.1.123 ...
- SQL创建删除索引
--创建唯一聚集索引create unique clustered index pk_table1 on table1 (column1) --创建唯一非聚集索引create unique noncl ...
- 【linux】下Apache无法启动(8080端口被占用)
Linux下8080端口被占用,apache无法启动. 打开终端输入netstat -lnp|grep 8080 发现竟然是tcp6 占用里,因此ipv6启用占用了端口. 1.打开/etc/sysct ...
- git常用命令二
http://www.jianshu.com/p/08c3f1804b36http://backlogtool.com/git-guide/cn/stepup/stepup1_1.html git ...