公司业务需要,需要搭建自己的 git 服务器。研究了一番,决定用 GitLab 搭建。在这里记录一下搭建过程与遇到的问题。
一、安装
我用的是 Azure 服务器,系统版本为 CentOS 7.5,机器配置为 2 核 8 G,官方推荐配置为 4 G RAM。看了一下 Azure 提供基于 GitLab 的系统,经过我尝试了一下之后,发现并不怎么好使,还是自己安装比较方便。
官方文档提供了安装的过程,可以参考官网的操作。
我使用的是 Omnibus 集成包,安装起来比较方便,可以自己从官网查看对应系统的安装教程
1.先说一下常规的安装
先安装依赖环境。
sudo yum install -y curl policycoreutils-python openssh-server cronie
配置电子邮件,不需要的可以跳过这步。
sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on
添加 GitLab 包,这里要注意,GitLab 分为社区免费版 ce 跟收费版 ee,官网提供的安装命令是收费版 ee,注意查看。我这里安装的是社区免费版。
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
安装之后,设置访问地址,这里同样要注意后缀的 ce 与 ee。
sudo EXTERNAL_URL =“https://gitlab.example.com” yum -y install gitlab-ce
基本到了就安装完成了,可以通过访问地址访问了。因为我没有 ssl 证书,所以就没有配置 ssl。如果访问502的话,就等一下。
2.选择安装指定的版本
安装好依赖环境之后,下载包。
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm/download.rpm
这里包的地址可以在官网找到。下载好之后,使用 rpm 安装。
rpm -i gitlab-ce-12.0.3-ce.0.el7.x86_64.rpm
安装好之后,修改配置文件,配置访问地址。
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
gitlab-ctl restart
二、汉化
汉化我用的xhang的汉化包。git clone 汉化包到服务器
//停止gitlab
gitlab-ctl stop
//先备份好数据
cp -r /opt/gitlab/embedded/service/gitlab-rails/* /home/bak
//直接用bin下的cp覆盖
/bin/cp -rf /home/gitadmin/gitlab/* /opt/gitlab/embedded/service/gitlab-rails/
//重新配置就OK了
gitlab-ctl reconfigure
gitlab-ctl restart
虽然我的 GitLab 版本跟汉化包版本是一样的,但是汉化的还是不完整。
三、从Bitbucket.org导入项目
依据官方文档进行oauth授权之后,可以很方便的从 Bitbucket 导入项目。也可以参照官方文档导入其他仓库的项目。
四、备份与修改仓库位置
因为gitlab默认的仓库位置在 /var/opt/gitlab/git-data/repositories,可以将其修改到其他的分区来存储数据。
//先创建仓库存储目录
mkdir -p /data/gitlab
//修改存储目录
vim /etc/gitlab/gitlab.rb
//在 git_data_dir 下面添加一句 git_data_dir "/data/gitlab"
//停止 GitLab,重新配置之后重启
//重新加载后,会发现在 /data/gitlab 目录下多出一个 repositories 目录
gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start
五、遇到的问题
因为 GitLab 安装在系统盘,而 Azure 创建虚拟机的时候,系统盘只有 30 GB,当使用了一段时间之后,GitLab 里的数据库文件便会占用很多空间。空间不足之后便会无法使用 Git。所以在创建虚拟机的时候,需要设置较大的系统盘,或者将 GitLab 的数据库文件移动到其他分区。