【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有默认安装,如果没有则 ...
随机推荐
- 六 json&pickle模块
之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了 ...
- PERL 正则表达式简介
来源:脚本之家 网址:http://www.jb51.net/article/17429.htm 一.简介 二.匹配操作符 三.模式中的特殊字符 1.字符+ 2.字符 []和[^] 3.字符 *和? ...
- 第四章 栈与队列(c2)栈应用:括号匹配
- NoHtml
private string NoHtml(string Htmlstring) { if (string.IsNullOrWhiteSpace(Htmlstring)) return string. ...
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
- Lua的闭包详解(终于搞懂了)
词法定界:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量,这种特征叫做词法定界 table.sort(names,functin (n1,n2) return grades[n1] ...
- linux命令学习之:systemctl
systemctl命令是系统服务管理器指令,主要负责控制systemd系统和服务管理器,它实际上将 service 和 chkconfig 这两个命令组合到一起. CentOS 7.x开始,CentO ...
- 无法连接到localhost.其他信息:用户“sa”登录失败。(MicroSoft Sql Server,错误:18456)
18456错误: 在安装的时候如果选择的身份验证模式为:Window身份验证模式,就会出现18456的错误. 解决方案: 使用windows身份验证登录之后,在下面红框上单击右键,点击属性: 点击属性 ...
- WebAPI支持Session
1.在App_Start/WebApiConfig.cs中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它: public class ...
- vuex写法
<template> <div class="hello"> <p>{{count}}</p> <p> <butt ...