gitlab-ce-omnibus社区版的备份和还原,可以使用gitlab自带工具,gitlab-rake来完成,详见下面例子
将旧gitlab服务器备份,并还原至新gitlab服务器 ,这两台gitlab服务器必须要同版本,才能还原成功
旧gitlab服务器
vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/mnt"
#该地址是配置存放备份的地方,根据实际情况配置,可以指定为已经挂载好的nfs目录,便于边备份边传输至新gitlab服务器。
gitlab-ctl reconfigure
-
备份旧gitlab服务器的数据,密钥文件及ssh文件,停止旧gitlab服务
gitlab-rake gitlab:backup:create
#在备份数据巨大,备份路径是网络路径情况下,比较耗时。
cp /etc/gitlab/gitlab-secrets.json /mnt/
cp /etc/ssh/*key* /mnt/
#gitlab密钥及服务器密钥,在进行gitlab完整迁移和完整还原,是必须要备份的。
gitlab-ctl stop
新gitlab服务器
gitlab-ctl reconfigure
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# Verify
gitlab-ctl status
gitlab-rake gitlab:backup:restore backup=timestamp
#timesstamp是指gitlab备份包的文件名前面的一串数字,如1516577507
cp -f /mnt/gitlab-secrets.json /etc/gitlab/
cp -f /mnt/*key* /etc/ssh/
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
#检查新gitlab服务器刚刚导入的数据
gitlab-ctl reconfigure
-
验证新gitlab主服务器的用户,代码库,提交记录等等是否完整,测试各项操作
-
递进升级到目前最新的稳定版本
列出当前gitlab所有版本
yum list gitlab-ce.x86_64 --showduplicates | sort -r
#先升级到当前安装主版本的最后一个子版本,再升级到下一个主版本的合适的子版本。
#升级完一个版本后,确认无报错,数据正常,再升级到下一个版本。
#下面就是从7.x.x升级到10.x.x的升级方法
yum install -y gitlab-ce-7.14.3-ce.1.el7
yum install -y gitlab-ce-8.17.8-ce.0.el7
yum install -y gitlab-ce-9.5.9-ce.0.el7
yum install -y gitlab-ce-10.3.5-ce.0.el7
gitlab-ctl restart