CentOS7搭建Gitlab服务器


前言

相信Git大家都不陌生,无论是工作还是学习中,大家都接触过Git,使用Git托管或下载代码。本篇将介绍如何使用GitLab来搭建一个自己的代码托管服务器。

一、GitLab是什么?

GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务1

简单来说,GitLab就是一个可以部署在自己的服务器服务器上的一个类似GitHub的代码托管WEB应用。如果想更深入了解GitLab,可以访问GitLab官网

二、搭建前准备

1. 服务器准备

我这里使用的是CentOS7系统,通过虚拟机搭建的服务器,有条件的也可使用云服务器搭建。

没有CentOS7虚拟机的,可以去CentOS官网自行下载安装,具体的安装方法这里就不提了,不会的话可以自行百度,网上有很多相关的博客。

2. 安装方式选择

官方给出了一些系统服务器下载安装GitLab的方式,包括主流的Ubuntu、Debian和CentOS等,大家可以直接按照官网给出的方式来安装。

不过官网的安装方式不太稳定,毕竟官方服务器在国外,所提供的资源可能获取不到,我之前使用官网的方式就没有安装成功,下面是通过国内镜像安装的方式,大家可以参考一下。

三、搭建步骤

1. 安装和配置所需依赖

安装必要依赖

# 安装依赖以及ssh服务,有些CentOS镜像安装后自带ssh
sudo yum install -y curl policycoreutils-python openssh-server
# 开启ssh
sudo systemctl enable sshd
sudo systemctl start sshd

防火墙配置

# 防火墙添加http服务
sudo firewall-cmd --permanent --add-service=http
# 防火墙添加https服务
sudo firewall-cmd --permanent --add-service=https
# 重启防火墙
sudo systemctl reload firewalld

一般的镜像是自带防火墙的,当然有些纯净镜像可能没有,这时候就需要安装防火墙

# 查看防火墙状态,如果输出一段信息并且显示active(running),表示有防火墙且处于开启状态
sudo systemctl status firewalld
# 如果没有防火墙,则按照以下命令安装
sudo yum install firewalld systemd -y
# 开启防火墙
sudo service firewalld  start

安装Postfix邮件服务

# 安装postfix
sudo yum install postfix
# 开启邮件服务
sudo systemctl enable postfix
sudo systemctl start postfix

2. 安装GitLab

这里我们使用清华大学开源软件镜像站提供的GitLab资源进行安装。

首先,创建/etc/yum.repos.d/gitlab-ce.repo文件:

# 这里使用vim编辑器编辑文件,如果系统没有的话,请自行百度安装方法
sudo vim /etc/yum.repos.d/gitlab-ce.repo

然后在文件内添加以下内容并保存关闭:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

最后执行命令:

sudo yum makecache
sudo yum install gitlab-ce

待命令执行完之后出现安装成功的提示信息,即完成了GitLab的安装。

3. 配置和启动GitLab

配置访问地址及端口

# 打开gitlab配置文件
sudo vim /etc/gitlab/gitlab.rb

找到external_url,并修改成自己服务器的ip和端口
修改external_url
这里的ip就是CentOS服务器的ip,不知道的话可以用ifconfigip addr命令进行查看。端口就是你想要部署的端口,这里不要用8080端口,因为GitLab的程序中有进程已经占用了这个端口。

刷新GitLab配置并启动GitLab

# 刷新配置
sudo gitlab-ctl reconfigure
# 重启gitlab
sudo gitlab-ctl restart

在服务器上的浏览器地址栏输入上面配置的external_url就可直接访问了。

4. 防火墙开放端口

完成以上3步,我们就可以初步使用GitLab了,但是只能在服务器上的浏览器访问,在自己的主机上还是不能访问。这是因为防火墙的缘故,程序所在的8888端口并未开放给服务器外的机器访问,这里就要配置并开放防火墙端口了。

首先查看防火墙已开放端口,看我们要开放的端口是否已经开放了

sudo firewall-cmd --list-ports

一般服务器再未配置时,这里会输出空行,表示没有开放过端口。下面进行开放端口操作

# 这里端口需要修改成自己的
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent

然后重启防火墙,使配置生效

sudo firewall-cmd --reload

这时在执行第一个命令,查看已开放端口,此时会输出我们所配置的端口。现在,我们在自己的主机上也能访问到搭建的GitLab页面上了。当然,主机必须和搭建的服务器在一个局域网内(除非GitLab服务器时部署在云服务器上,有自己的公网地址)。

5. 502错误的处理

有的同学在配置完以上步骤之后,打开浏览器看到的却是502页面:
GitLab502
有可能是以下几点原因:

  1. 服务器内存不够。GitLab所要求的最小内存是2GB,最好是配置到3~4GB,如果太小的话,GitLab的程序会不能完全启动,导致502。
  2. external_url所配置的端口被占用了。这个是比较常见的原因,GitLab本身的进程会占用一些端口,比如8080,或者服务器上运行的其他程序占用所配置的端口,从而导致GitLab启动失败。
  3. 服务器上运行的其他程序占用了GitLab进程所需的端口。如2中所说,GitLab本身的进程会占用一些端口,如果服务器上运行了其他程序,且和GitLab有冲突,也会导致GitLab启动失败。

至于如何判断是2还是3,在GitLab启动时,会有反馈信息。
在这里插入图片描述如果有哪个进程没启动,在这反馈信息会看见,这种情况就是3,有其他程序占用了GitLab某个进程所用的端口。否则就是2中的情况,可以根据图中的反馈信息结合lsof命令或netstat -tunlp命令根据pid查看GitLab进程所占用的端口。

6. GitLab页面应用设置

(1) 首次登录
第一次访问GitLab页面应用时,会让我们重置管理员账号的密码,重置完成之后,使用用户名root和所设置的密码即可登录。

(2) 设置中文
应用默认以英文显示,可以设置成中文:
点击右上角头像位置,选择setting,再选择左侧的"Perferences",页面拉到最下面,看到"Language"项,选择“简体中文”,再点击"Save changes"按钮保存设置,最后刷新页面即可。
GitLab设置中文
(3) 设置邮箱
管理员默认的邮箱是"admin@example.com",显然这是无效的,需要设置成自己的邮箱,以便能接收到GitLab所发送的邮件。点击右上角头像,选择设置->用户资料,然后在电子邮箱一栏填入自己的邮件地址,页面拉到底部点击“更新个人资料设置”保存更改,刷新后即生效。
除了邮件,也可更改用户名、头像等信息。
修改邮件

7. 配置GitLab邮件服务

GitLab提供邮件服务,可以给用户发送一些提示邮件,下面将介绍如何配置GitLab的邮件服务。

我们可以使用QQ邮箱、网易邮箱,或者如果是企业使用的话,可以用自己的企业邮箱,作为GitLab的邮件服务器发送邮件。这里我使用的是QQ邮箱。

首先,登录QQ邮箱并获取SMTP服务的授权码:
登录QQ邮箱后,选择设置->账户,然后往下浏览,找到POP3…这一项,开启POP3/SMTP服务,按照提示发送短信后页面会给出授权码。
获取邮箱授权码在这里插入图片描述
获取到授权码后,进入gitlab配置文件配置邮件服务:

sudo vim /etc/gitlab/gitlab.rb

找到gitlab_rails['smtp_enable'] = true部分,然后对这部分内容进行修改,内容如下:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
# 邮箱账号
gitlab_rails['smtp_user_name'] = "xxx@qq.com"
# 授权码
gitlab_rails['smtp_password'] = "xxxx"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
# 邮箱账号
user['git_user_email'] = "xxx@qq.com"
# 邮箱账号
gitlab_rails['gitlab_email_from'] = "xxx@qq.com"

配置完成之后,刷新GitLab配置并重启:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

测试邮件服务是否正常:

# 进入控制台
gitlab-rails console
# 发送邮件,按回车发送
Notify.test_email('接收方邮件地址','邮件标题','邮件内容').deliver_now

如果能收到邮件,则代表邮件服务配置成功。


总结

经过以上步骤,即可完成GitLab服务器的基本搭建,可以尝试在此服务器注册账号并托管代码。


  1. 引用自百度百科↩︎

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值