在Ubuntu 16.04下快速搭建Gitlab并汉化。
这是voidAlex原创的第八篇博文。

配置ip

使用ifconfig查看网卡名称,然后修改配置文件

修改/etc/network/interfaces

1
sudo vi /etc/network/interfaces

将内容修改为:

1
2
3
4
5
auto ens33
iface ens33 inet static
address 202.201.53.159
gateway 202.201.53.128
netmask 255.255.255.0

重启网络,使之生效:

1
sudo /etc/init.d/networking restart

配置DNS:

1
sudo vi /etc/resolvconf/resolv.conf.d/base

添加:

1
2
nameserver 223.5.5.5
nameserver 223.6.6.6

保存后执行:

1
resolvconf -u

重启网络

1
sudo ifdown ens33 && sudo ifup ens33

更新apt,安装ssh和git

1
2
3
sudo apt-get update
sudo apt install ssh
sudo apt install git

测试ssh安装是否成功:

1
ssh localhost

安装Gitlab并配置依赖关系

安装邮件服务器:

1
sudo apt-get install curl openssh-server ca-certificates postfix

配置安装源:

1
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安装Gitlab并初始化

1
2
sudo apt install gitlab-ce
sudo gitlab-ctl reconfigure

修改host

修改/etc/gitlab/gitlab.rb中的external_url

1
external_url 'http://nwnu.git.com'

/etc/hosts中添加hosts映射:

1
127.0.0.1 nwnu.git.com

让Gitlab配置生效:

1
sudo gitlab-ctl reconfigure

汉化Gitlab

确定Gitlab的版本

1
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

clone汉化版本库

1
git clone https://gitlab.com/xhang/gitlab.git

导出diff文件并补丁

1
2
3
sudo git diff v10.1.0 v10.1.0-zh > ../10.1.0-zh.diff
sudo gitlab-ctl stop
sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.1.0-zh.diff

重启Gitlab

1
2
sudo gitlab-ctl start
sudo gitlab-ctl reconfigure

备份

Gitlab默认的备份目录在/var/opt/gitlab/backups

手动备份

1
sudo gitlab-rake gitlab:backup:create

自动备份

1
2
# 每天2点备份
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

恢复

恢复之前,确保备份文件所安装 GitLab 和当前要恢复的 GitLab 版本一致。首先,恢复配置文件:

1
2
3
sudo mv /etc/gitlab /etc/gitlab.$(date +%s)
# 将下面配置备份文件的时间戳改为你所备份的文件的时间戳
sudo tar -xf etc-gitlab-1399948539.tar -C /

恢复数据文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 将数据备份文件拷贝至备份目录
sudo cp 1393513186_gitlab_backup.tar /var/opt/gitlab/backups/
# 停止连接数据库的进程
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# 恢复1393513186这个备份文件,将覆盖GitLab数据库!
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186
# 启动 GitLab
sudo gitlab-ctl start
# 检查 GitLab
sudo gitlab-rake gitlab:check SANITIZE=true