当前系统环境
- 操作系统: ubuntu16.0.4
- 用户名:crisen
- ip:10.0.1.100
- 当前gitlab版本: 10.8.5汉化版
- 升级目标版本:11.0.3
迁移目标环境
- 操作系统:ubuntu16.0.4
- 用户名:crisen
- ip: 10.0.1.101
- gitlab版本:11.0.3
gitlab升级
使用apt软件包对gitlab进行升级,如果是汉化过的版本,那么升级之后汉化会消失,需要重新汉化
sudo apt update
sudo apt upgrade gitlab-ce
升级的时候因为要下载很多的东西,可能会比较缓慢
gitlab备份
使用gitlab-rake进行备份
sudo gitlab-rake gitlab:backup:create
# 执行此命令之后,会在/var/opt/gitlab/backups目录下生成如下格式的备份文件
#时间戳_日期_gitlab版本_gitlab_backup.tar
backups目录所属用户为git,权限是700,使用普通用户无法进入该目录,使用sudo chmod a+x /var/opt/gitlab/backups命令可以改变用户权限
gitlab迁移
迁移的过程中,首先要注意,目标版本和当前版本必须一致,否则无法迁移,如果想要安装指定版本的gitlab,可以点击此处
迁移准备工作
关闭gitlab服务
sudo gitlab-ctl stop
当前版本为11.0.3,后续的版本中是支持热备份的 不需要管理gitlab-ctl服务
建立gitlab备份并把备份文件拷贝至目标服务器
当前gitlab服务器
生成备份
sudo gitlab-rake gitlab:backup:create #备份 生成了1531204254_2018_07_10_11.0.3_gitlab_backup.tar
改变权限
sudo chmod a+rx /var/opt/gitlab/backups # 修改目录权限
上传备份文件
sudo scp /var/opt/gitlab/backups/1531204254_2018_07_10_11.0.3_gitlab_backup.tar crisen@10.0.1.101:~/ # 上传文件至迁移服务器
目标服务器
修改备份目录权限
sudo chmod a+rx /var/opt/gitlab/backups #修改backups目录权限
移动文件
sudo mv ~/1531204254_2018_07_10_11.0.3_gitlab_backup.tar /var/opt/gitlab/backups/ #移动文件至gitlab备份文件目录
修改备份文件所有者
sudo chown git:git 1531204254_2018_07_10_11.0.3_gitlab_backup.tar
恢复
sudo gitlab-rake gitlab:backup:restore restore BACKUP=1531204254
11.7.6版本迁移要加上日期和版本
sudo gitlab-rake gitlab:backup:restore restore BACKUP=1531204254_2018_07_10_11.0.3迁移过程中如果出现 psql:The database was initialized with LC_COLLATE "zh_Cn.UTF-8", which is not recognized by setlocale(). 使用下面的命令解决
localedef -f UTF-8 -i zh_CN zh_DN.UTF-8
重启gitlab服务
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
至此迁移完成,在restart之后马上访问gitlab可能会出现502错误,属于正常现象,等待1分钟左右访问即可