Centos7 Gitlab 安装教程
- 1、前言
- 2、git 介绍
- 2、svn 与 git 对比
- 2.1、svn
- 2.2、git
- 3、git、gitlab、github 区别解释
- 4、部署环境介绍
- 5、安装前准备工作
- 5.1 安装vim编辑器
- 5.2 安装wget下载工具
- 5.3 ssh
- 5.4 防火墙相关
- 5.5 postfix
- 6、正式安装
- 6.1 下载GitLab镜像
- 6.2 安装GitLab
- 6.3 修改GitLab的配置文件
- 6.4 初始化GitLab
- 6.5 启动GitLab
- 6.6 关闭GitLab
1、前言
本文介绍gitlab的完整安装步骤。原本团队使用的版本管理工具是所有java开发都耳熟能详的svn,一直觉得够用了,也没想过去换成比较火的git,但是随着朋友、同行的热捧最终决定使用git来作为团队的版本管理工具。
安装前觉得git、svn应该是差不多的东西,但是实际看过一些帖子之后发现安装、使用上差别还是很大的,而且在安装中我也出了不少问题,网上的帖子比较少,所以决定详细写一篇自己的,留作笔记,也希望这段笔记可以帮助到跟我一样正在接触git的开发朋友们。
2、git 介绍
同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。
到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:
序号 | 目标 |
1 | 速度 |
2 | 简单的设计 |
3 | 对非线性开发模式的强力支持(允许上千个并行开发的分支) |
4 | 完全分布式 |
5 | 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量) |
2、svn 与 git 对比
2.1、svn
svn版本管理服务器:是集中式式版本管理系统,何为集中就是svn服务器,与集中相呼应的就是终端也就是svn客户端或者白话说就是每个开发的自己的笔记本、台式机。
svn的中央型模式决定了他的使用流程
步骤 | svn工作内容 |
第一步 | 创建空项目提交到svn |
第二步 | 所有开发人员checkout项目到本地开发机器中 |
第三步 | 开发人员开始开发,每次开发前先更新代码,从中央服务器保证本机代码最新,然后再提交自己编写的代码 |
总结 | 代码集中管理,本地没有代码仓库,通过更新、提交两个步骤,将代码统一存储在中央服务器仓库中 |
下图展示了 Svn 的工作流程:
2.2、git
分布式版本管理软件,每个参与开发的人的电脑上都有一个完整的仓库,有着非常强大的分支管理功能,常用于代码托管。
步骤 | git工作内容 |
1 | 从远程仓库(git服务器)中克隆 Git 资源作为本地仓库。 |
2 | 从本地仓库(本地仓库)中checkout代码然后进行代码修改 |
3 | 在提交前先将代码提交到暂存区。 |
4 | 提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。 |
5 | 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。 |
下图展示了 Git 的工作流程:
3、git、gitlab、github 区别解释
git : 版本控制系统,是一种命令、是一种工具,是一个概念
github : 是基本git这个概念实现的在线代码仓库,是一个网站界面,互联网开发
gitlab : 是一个给予git实现的在线代码软件,可以自己搭建一个gitlab,模拟类似github一样的系统,一般用于搭建私服git服务器使用。
标题 | 概念 |
git | git是一个概念 |
github | github在线代码仓库,一个做好的网站 |
gitlab | gitlab开源软件,可以搭建自己的私有化git服务器,给自己的开发团队使用 |
4、部署环境介绍
系统:centos7
gitlab:gitlab-11.11.8版本
gitlab下载地址:gitlab下载地址
5、安装前准备工作
安装gitlab需要若干相关依赖,我们先提前把所有相关依赖进行安装
5.1 安装vim编辑器
yum install vim -y
5.2 安装wget下载工具
yum -y install wget
5.3 ssh
安装ssh ⬇
sudo yum install -y curl policycoreutils-pythonopenssh-server
设置SSH服务开机自启动 ⬇
sudo systemctl enable sshd
启动SSH服务 ⬇
sudo systemctl start sshd
5.4 防火墙相关
安装防火墙 ⬇
yum install firewalld systemd -y
开启防火墙 ⬇
sudo firewall-cmd --permanent --add-service=http
添加端口进入防火墙(这个端口需要主意,就是以后gitlab的连接端口)⬇
#本帖子中使用的端口是4433
firewall-cmd --permanent --add-port=4433/tcp
重启防火墙后,开发的端口才有效 ⬇
systemctl reload firewalld
检查防火墙中端口是否开启 ⬇
firewall-cmd --query-port=4433/tcp
5.5 postfix
安装postfix ⬇
yum install -y postfix
修改postfix配置 ⬇
#编辑postfix配置文件
vim /etc/postfix/main.cf
#修改如下内容
inet_protocols = ipv4
启动postfix ⬇
systemctl enable postfix
systemctl start postfix
6、正式安装
6.1 下载GitLab镜像
使用国内镜像网站,下载速度快,本例子中使用的是清华大学开源软件镜像站。
本例中GitLab版本:gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
6.2 安装GitLab
rpm gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
提示如上图片,代表GitLab初步安装成功,可以开始进一步配置。⬆
6.3 修改GitLab的配置文件
GitLab 502问题,我看网友帖子、包括我自己都有这个问题,所以特意写一下,出现502问题最主要的原因就是端口冲突,GitLab默认是80端口,但是80端口有可能已经被其他程序占用,所有需要找一个未必占用的端口进行修改,我本例使用的是4433端口
vim /etc/gitlab/gitlab.rb
external_url 后跟的网址就是GitLab的登陆网址,网址中端口写的多少,GitLab端口就是多少,这里需要注意!!!
6.4 初始化GitLab
每次修改完GitLab配置之后,都需要执行如下命令,配置才会生效.
该命令等待时间很长,控制台一直输出GitLab日志,这个时候不要着急,我自己本机是使用Vm中虚拟机搭建环境,60G硬盘,1G内存,1核处理器,共等待差不多3-5分钟左右。
gitlab-ctl reconfigure
6.5 启动GitLab
gitlab-ctl restart
在浏览器中打开网址,如出现上图那么说明部署完成 ⬆
6.6 关闭GitLab
gitlab-ctl stop