Gitlab 升级备份迁移

公司老的服务器即将到期,且不准备续期(打算在公司账号下新买ECS服务器,旧的服务器是在个人账号下购买的),旧服务器上的gitlab服务需要迁移到新的服务器上。

由于Gitlab自身的兼容性问题,高版本的Gitlab无法恢复低版本gitlab备份的数据。要么新服务器安装和旧服务器一样版本的gitlab,部署好环境后开始备份和数据迁移;要么旧服务器上的gitlab按步骤升级到最新版本后再备份,新服务器上直接安装最新版本,并恢复对应版本的数据。
强迫症用户肯定选择升级到最新版啊。gitlab的版本升级也比较个性,下边请看我慢慢道来:

安全起见,旧服务器升级Gitlab前,建议先备份数据(虽然是老版本的,但总比丢失了的好)。

查询版本及备份

查看gitlab版本(二选一):

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 
gitlab-rake gitlab:env:info

备份10.3.3版本数据

gitlab-rake gitlab:backup:create RAILS_ENV=production
备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名文件名如1541739348_2018_11_09_10.3.3_gitlab_backup.tar

升级路线 10.3.3 ---> 10.8.7 ---> 11.4.5 (10.8.7是版本10中的最后一个版本)

创建升级所需文件 touch /etc/gitlab/skip-auto-migrations

yum install gitlab-ce

#直接升级最新版本报错如下

gitlab preinstall: It seems you are upgrading from 10.x version series
gitlab preinstall: to 11.x series. It is recommended to upgrade
gitlab preinstall: to the last minor version in a major version series first before
gitlab preinstall: jumping to the next major version.
gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations
gitlab preinstall: and upgrade to 10.8 first.
error: %pre(gitlab-ce-11.4.5-ce.0.el7.x86_64) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package gitlab-ce-11.4.5-ce.0.el7.x86_64
gitlab-ce-10.3.3-ce.0.el7.x86_64 was supposed to be removed but is not!
  Verifying  : gitlab-ce-10.3.3-ce.0.el7.x86_64                             1/2 
  Verifying  : gitlab-ce-11.4.5-ce.0.el7.x86_64                             2/2 

Failed:
  gitlab-ce.x86_64 0:10.3.3-ce.0.el7                              gitlab-ce.x86_64 0:11.4.5-ce.0.el7                                                          
Complete!

旧服务器上安装的gitlab版本是10.3.3,最新的gitlab版本是11.4.5,要从10.版本升级到11.版本需要先升级到10.*的最后一个版本官方是这么规定的

yum install gitlab-ce-10.8.7
#从10.3.3先升级到10.8.7 升级成功 信息如下

Running handlers:
Running handlers complete
Chef Client finished, 0/1 resources updated in 07 seconds
Checking PostgreSQL executables: OK
Found /etc/gitlab/skip-auto-migrations, exiting...

     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Upgrade complete! If your GitLab server is misbehaving try running
  sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).

  Verifying  : gitlab-ce-10.8.7-ce.0.el7.x86_64                         1/2 
  Verifying  : gitlab-ce-10.3.3-ce.0.el7.x86_64                         2/2 

Updated:
  gitlab-ce.x86_64 0:10.8.7-ce.0.el7                                

Complete!

升级到10.8.7后重新初始化一下配置并重启gitlab

gitlab-ctl reconfigure
gitlab-ctl restart

访问重启后的gitlab,查看是否成功;继而升到最新版本(11.4.5)

yum install gitlab-ce
#10.8.7升级11.4.5 成功 信息如下
Running handlers:
Running handlers complete
Chef Client finished, 0/1 resources updated in 10 seconds
Checking PostgreSQL executables: OK
Found /etc/gitlab/skip-auto-reconfigure, exiting...

     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Upgrade complete! If your GitLab server is misbehaving try running
  sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).

  Verifying  : gitlab-ce-11.4.5-ce.0.el7.x86_64                            1/2 
  Verifying  : gitlab-ce-10.8.7-ce.0.el7.x86_64                            2/2 

Updated:
  gitlab-ce.x86_64 0:11.4.5-ce.0.el7                                  

Complete!

升级到11.4.5 执行gitlab-ctl reconfigure 再次初始化配置,报错如下

Deprecations:
== Prometheus ==
Detected Prometheus version 1.x. Version 1.x has been deprecated and support will be removed in GitLab version 12.0.
To upgrade to Promtheus 2.x, use `gitlab-ctl prometheus-upgrade` command.
Running this command will migrate all your existing data to format supported by Prometheus 2.x.
This can be a time consuming operation. To skip migrating the data, and instead remove and start fresh, run `gitlab-ctl prometheus-upgrade --skip-data-migration`.
Check https://docs.gitlab.com/omnibus/update/gitlab_11_changes.html#11-4 for details.
---

gitlab Reconfigured!

按照给出的信息升级gitlab-ctl prometheus-upgrade并重启gitlab-ctl restart,应该就可正常访问11.4.5版本的gitlab了。

gitlab-rake gitlab:backup:create RAILS_ENV=production
#再次备份最新版本的数据,并查看相应文件
ll /var/opt/gitlab/backups                           
total 152K
-rw------- 1 git  git  80K Nov  8 19:51 1541677863_2018_11_08_11.4.5_gitlab_backup.tar
-rw-r--r-- 1 root root 70K Nov  8 18:56 1541739348_2018_11_09_10.3.3_gitlab_backup.tar

数据迁移

新的服务器上安装最新(11.4.5)版本的gitlab,CentOS7安装请参考

scp -pr 1541677863_2018_11_08_11.4.5_gitlab_backup.tar root@10.211.55.12:/var/opt/gitlab/backups
#把对应版本的数据从旧服务器上拷贝到新服务器的gitlab备份目录里
#新服务器执行恢复命令
chown -R git.git /var/opt/gitlab/backups/
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1541677863_2018_11_08_11.4.5

注意:这里没有后面的_gitlab_backup.tar名字
一路yes,恢复是会先删除新服务器上所有gitlab数据的。

恢复完数据后gitlab-ctl restart重启,即可正常访问到原有的gitlab数据了
参考1
参考2

原文链接

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容