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 的工作流程:

centos7 配置git ssh centos7 gitlab_git

2.2、git

    分布式版本管理软件,每个参与开发的人的电脑上都有一个完整的仓库,有着非常强大的分支管理功能,常用于代码托管

步骤

git工作内容

1

从远程仓库(git服务器)中克隆 Git 资源作为本地仓库。

2

从本地仓库(本地仓库)中checkout代码然后进行代码修改

3

在提交前先将代码提交到暂存区。

4

提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。

5

在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

下图展示了 Git 的工作流程:

centos7 配置git ssh centos7 gitlab_github_02


centos7 配置git ssh centos7 gitlab_gitlab_03

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

centos7 配置git ssh centos7 gitlab_gitlab_04


提示如上图片,代表GitLab初步安装成功,可以开始进一步配置。⬆

6.3 修改GitLab的配置文件

    GitLab 502问题,我看网友帖子、包括我自己都有这个问题,所以特意写一下,出现502问题最主要的原因就是端口冲突,GitLab默认是80端口,但是80端口有可能已经被其他程序占用,所有需要找一个未必占用的端口进行修改,我本例使用的是4433端口

vim  /etc/gitlab/gitlab.rb

external_url 后跟的网址就是GitLab的登陆网址,网址中端口写的多少,GitLab端口就是多少,这里需要注意!!!

centos7 配置git ssh centos7 gitlab_git_05

6.4 初始化GitLab

每次修改完GitLab配置之后,都需要执行如下命令,配置才会生效.
该命令等待时间很长,控制台一直输出GitLab日志,这个时候不要着急,我自己本机是使用Vm中虚拟机搭建环境,60G硬盘,1G内存,1核处理器,共等待差不多3-5分钟左右

gitlab-ctl reconfigure

6.5 启动GitLab

gitlab-ctl   restart

centos7 配置git ssh centos7 gitlab_centos7 配置git ssh_06


在浏览器中打开网址,如出现上图那么说明部署完成 ⬆

6.6 关闭GitLab

gitlab-ctl stop