设为首页 收藏本站
查看: 709|回复: 0

[经验分享] 通过 备份文件 恢复/迁移 gitlab

[复制链接]

尚未签到

发表于 2018-1-11 07:49:22 | 显示全部楼层 |阅读模式
===============================================

2017/10/20_第1次修改                       ccb_warlock


===============================================

通过之前的记录,已经掌握了gitlab的本地备份(http://www.cnblogs.com/straycats/p/7671204.html)和远程备份(http://www.cnblogs.com/straycats/p/7672692.html)。

但是获取备份文件不是我们的目的,最终是为了通过备份文件实现迁移或恢复gitlab。本篇就是记录如何通过备份文件在新的环境上去恢复/迁移gitlab。




一、环境准备

首先在新服务器(192.168.2.1)上搭建gitlab,部署过程可以参考http://www.cnblogs.com/straycats/p/7637373.html。


注意:通过备份文件恢复gitlab必须保证新的gitlab版本必须要和老的gitlab版本一致,否则会提示版本不匹配。


  所以无非是两种思路,一种将老的gitlab先升级到你要的gitlab版本,再迁移备份;另一种将gitlab安装的版本和老gitlab一致,迁移完成后再进行升级。
  我采取先保持一致后迁移,再进行升级。



二、配置新的gitlab

  gitlab的配置文件(gitlab.rb)是不因备份恢复而恢复的,故要将老的gitlab的配置文件也取过来,否则就需要维护人员重新配置。

2.1 获取gitlab.rb

在新服务器上,使用scp命令将老服务器(192.168.1.1)的备份文件复制到/etc/gitlab/目录下。

  

scp root@192.168.1.1:/etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb  


  第一次连接时会询问是否要继续连接,输入yes,回车。
  接着输入老服务器的root密码后,回车。
  接着就会看到备份文件传输的信息。

  2.2 修改external_url
  如果新gitlab服务器部署之后ip不改回老的ip(示例为192.168.1.1),故需要修改gitlab.rb的external_url参数,因为页面上项目的http地址就是根据该参数拼接而成的。

  以新gitlab服务器的ip为192.168.2.1为例,修改gitlab配置文件。
  

vim /etc/gitlab/gitlab.rb  

  修改external_url,wq保存。
  

external_url 'http://192.168.2.1'  

  2.3 重新配置gitlab
  

gitlab-ctl reconfigure  

  

三、获取备份文件

在新服务器上,使用scp命令将老服务器(192.168.1.1)的备份文件(1508412719_2017_10_19_10.0.2_gitlab_backup.tar)复制到/var/opt/gitlab/backups/目录下。

  

scp root@192.168.1.1:/var/opt/gitlab/backups/1508412719_2017_10_19_10.0.2_gitlab_backup.tar /var/opt/gitlab/backups/  

  获取到/var/opt/gitlab/backups/目录下是因为我没有特别更换gitlab的备份目录,如果gitlab.rb有指定别的目录,根据实际情况自行修改。


  第一次连接时会询问是否要继续连接,输入yes,回车。
  接着输入老服务器的root密码后,回车。
  接着就会看到备份文件传输的信息。

如果老服务器出现故障时,云端有备份文件可以从云端获取,比如云端192.168.1.2的/gitlab-backup目录下有备份文件,可以从那获取。

  

scp root@192.168.1.2:/gitlab-backup/1508412719_2017_10_19_10.0.2_gitlab_backup.tar /var/opt/gitlab/backups/  

  

四、恢复/迁移gitlab数据

4.1 修改备份文件权限

  将备份文件的权限改为777,否则恢复的时候会出现权限不够导致解压失败的问题。

  

chmod 777 /var/opt/gitlab/backups/1508412719_2017_10_19_10.0.2_gitlab_backup.tar  

4.2 停止相关数据连接服务

  

gitlab-ctl stop unicorn  
gitlab-ctl stop sidekiq
  

4.3 恢复gitlab

  使用“gitlab-rake gitlab:backup:restore BACKUP=备份文件编号”指令可以根据备份文件来恢复,因为示例中是使用1508412719_2017_10_19_10.0.2_gitlab_backup.tar来恢复,故备份文件编号为1508412719_2017_10_19_10.0.2。
  

gitlab-rake gitlab:backup:restore BACKUP=1508412719_2017_10_19_10.0.2  

  等待片刻后,由于新的gitlab还是处于初始状态,直接输入“yes”,回车。

  然后就是等待恢复的结束。

  到了下面的内容时,输入“yes”,回车。

4.4 启动gitlab

  

gitlab-ctl start  

  

五、关于本地备份和远程备份

  由于这两块是额外配置的,如果新环境中也要有这一套备份机制,自然需要维护人员手动配一次。
  本地备份参考:http://www.cnblogs.com/straycats/p/7671204.html
  远程备份参考:http://www.cnblogs.com/straycats/p/7672692.html



  参考资料:
  1. http://blog.csdn.net/ouyang_peng/article/details/77070977

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-433760-1-1.html 上篇帖子: gitlab备份以及迁移 下篇帖子: composer gitlab 搭建私包
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表