准备工作

如果是搭建到远程服务器上,还需要远程连接到Linux,我这里用的是PuTTY

安装和配置相关软件

安装curl、policycoreutils-python、openssh-server等软件并配置防火墙放开SSH、HTTP、HTTPS的权限

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 firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

然后安装Postfix,用于GitLab发送一些通知邮件,比如注册新用户或者修改用户密码的通知邮件,也可以跳过这一步,等GitLab安装完成后再配置其他的邮件服务器

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

安装

首先配置GitLab安装包的仓库地址,待会的安装会从该地址下载安装包

这里补充说明下,GitLab有两个版本,一个是社区开源版,一个是企业版。这里配置下载的是企业版,企业版包含社区办的所有功能,还包含一些高级的付费功能,需另外购买激活码。安装企业版的好处是若有一天想升级到付费吧可以直接购买激活码升级而无需重新安装

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

开始安装,其中EXTERNAL_URL设置的值是GitLab搭建起来后访问的地址,将https://gitlab.example.com替换成你自己配置的域名即可

sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee

若无域名,可以直接设置为服务器的地址加开放的端口号,假设我的服务器地址是1.2.3.4,端口号是8090

sudo EXTERNAL_URL="http://1.2.3.4:8090" yum install -y gitlab-ee

 或者不设置EXTERNAL_URL,等安装完成后通过vim  /etc/gitlab/gitlab.rb进入配置文件配置

sudo yum install -y gitlab-ee

关于配置EXTERNAL_URL,请参考这篇文章Configuring the external URL for GitLab

external_url "http://1.2.3.4:8090"

开放防火墙端口

GitLab默认的端口为8080,我们上面配置了8090,别忘了配置防火墙放开该端口,配置的端口也不要被其他程序占用

firewall-cmd --permanent --add-port=8090/tcp  //新增端口开放,如果不设置--permanent则系统重启后失效
firewall-cmd --reload   //新增端口开放后都要运行

遇到的坑

成功运行GitLab前还填了一些坑,总结到其他文章中,如下所示

  • CentOS 7搭建GitLab服务器踩坑——解决Whoops, GitLab is taking too much time to respond 502 错误
  • CentOS 7搭建GitLab服务器踩坑——解决nginx 400 Bad Request Request Header Or Cookie Too Large问题

开启和停止服务

正常情况下以上步骤安装完就可以直接浏览器访问打开GitLab了,服务会在服务器启动的时候自动运行

我们也可以通过以下方式手动开启和停止服务

# Start all GitLab components
sudo gitlab-ctl start

# Stop all GitLab components
sudo gitlab-ctl stop

# Restart all GitLab components
sudo gitlab-ctl restart

访问

在浏览器输入你配置的访问地址直接访问,比如我配置的http://1.2.3.4:8090

第一次访问会跳转到如下页面配置管理员账号root的密码,配置完就可以通过root账号登录

登录后我们可以创建账号、创建项目,GitLab还有很多功能等着你去探索,但是不在本文的讨论范围

gitlab 预览页面 gitlab docsify_服务器

 

参考