ubuntu下gitlab升级 备份 迁移

当前系统环境

  • 操作系统: 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分钟左右访问即可

发表评论