zoukankan      html  css  js  c++  java
  • 通过 备份文件 恢复/迁移 GitLab

    原文地址:http://www.cnblogs.com/straycats/p/7702271.html


     

     部署:https://www.cnblogs.com/nethrd/p/9408254.html

     升级:https://www.cnblogs.com/nethrd/p/9408290.html

     本地备份:https://www.cnblogs.com/nethrd/p/9408330.html

     远程备份:https://www.cnblogs.com/nethrd/p/9408362.html

    通过之前的记录,已经掌握了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

  • 相关阅读:
    接口测试常见bug
    软件测试面试题含答案
    每个测试都该知道的测试用例方法及细节设计
    从“如何测试一个杯子”理解功能、界面、性能、安全测试?
    小白必看:测试人有必要参考的软件测试工作规范
    经验分享:给软件测试人员15个最好的测试管理工具
    DFS路径规划
    Trian(列车调度)
    GAIA
    CSWS_E_ROB深度估计方法
  • 原文地址:https://www.cnblogs.com/nethrd/p/9408388.html
Copyright © 2011-2022 走看看