基本配置
gitlab私有服务器属于资源密集型,需要的服务器配置:至少4GB RAM(实际测试大约需2.8GB)。在push或pull大型项目时,gitlab在服务器中约占据10%的CPU使用率,特别是当RAM小于4GB时,push或pull大型项目的传输速率会严重下降。
同时需要注意的是,不建议将gitlab私有服务器当做代码的备份仓库,如果服务器的实例中断运行的话,gitlab私有服务器中的代码也会丢失(所以也最好不要将git作为备份代码的工具,尽管有一些像github这样的服务提供商将git作为代码托管工具)
在了解gitlab私有服务器的基本配置后,对比市场上常见的云服务器,我最后选择了华为云的学生优惠套餐,2核4G,半年108元不是很贵,正好满足搭建的需求:
在购买学生套餐前,记得进行学生认证。
在选择操作系统时,有个隐藏的坑:gitlab官网yum仓库(gitlab-ee商业版)并未提供centos系统arm版本的rpm安装包(有提供x86版本的rpm安装包,但华为云学生套餐的centos操作系统只有arm架构),但有提供debian系统arm版本的安装包,只能选择debian操作系统来为下一步搭建做准备。这里我选的是系统是Debian 10.2.0 64bit with ARM。
搭建步骤
然后按照gitlab官网对debian系统搭建私有服务器的教程一步步来:
- 安装必要的依赖:
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates perl
然后安装postfix获取邮件通知:
sudo apt-get install -y postfix
在postfix安装的过程中,会弹出一个的配置提示窗,选择Internet Site
并按确定。
- 下载gitlab包并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
等到安装完毕,再配置访问域名。为了简单起见,这里可以配置http访问的形式:
sudo EXTERNAL_URL="http://ip地址:80" apt-get install gitlab-ee
当然,EXTERNAL_URL
也可以配置域名(DNS服务器解析),如EXTERNAL_URL="https://bmxbmx3.com"
,通过输入域名即可对私有服务器的访问。
- 配置安全组及防火墙端口
首先是安全组配置。入方向放通http的80端口(默认):
注意这里设置的端口不能被占用,默认是80端口,如果80已经使用,请自定义其它端口,并在防火墙设置开放相对应的端口(参考Debian/Ubuntu放行端口)。
安装iptables(通常系统都会自带,如果没有就需要安装):
apt-get update
apt-get install iptables
其次是防火墙配置。放通80端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
然后保存放行规则:
iptables-save
设置完就已经放行了指定的端口,但重启后会失效,下面设置持续生效规则。
安装iptables-persistent:
apt-get install iptables-persistent
保存规则持续生效:
netfilter-persistent save
netfilter-persistent reload
设置完成后指定端口就会持续放行了。
当端口设置好后,对外访问服务器如下图:
在username和password分别输入root(服务器管理员名字)和服务器密码,即可登录gitlab。
重新配置访问url
如果想更换外部访问gitlab私有服务器的url,可以修改gitlab配置文件指定服务器ip和自定义端口:
vim /etc/gitlab/gitlab.rb
进入编辑器后按i
键进入编辑状态,ESC
键退出编辑状态。
退出并保存,命令输入:wq
或:x
。
然后重置并启动gitlab,执行:
gitlab-ctl reconfigure
gitlab-ctl restart
提示ok: run:
表示启动成功: