通過 備份文件 恢復/遷移 gitlab


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

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

 

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

 部署:http://www.cnblogs.com/straycats/p/7637373.html

 升級:http://www.cnblogs.com/straycats/p/7707359.html

 本地備份:http://www.cnblogs.com/straycats/p/7671204.html

 遠程備份:http://www.cnblogs.com/straycats/p/7672692.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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM