1. 程式人生 > >轉載:通過 備份檔案 恢復/遷移 gitlab

轉載:通過 備份檔案 恢復/遷移 gitlab

一、環境準備

首先在新伺服器(192.168.2.1)上搭建gitlab,

 

注意:通過備份檔案恢復gitlab必須保證新的gitlab版本必須要和老的gitlab版本一致,否則會提示版本不匹配。

所以無非是兩種思路,一種將老的gitlab先升級到你要的gitlab版本,再遷移備份;另一種將gitlab安裝的版本和老gitlab一致,遷移完成後再進行升級。

我採取先保持一致後遷移,再進行升級。

 

 


二、配置新的gitlab

gitlab的配置檔案(gitlab.rb)是不因備份恢復而恢復的,故要將老的gitlab的配置檔案也取過來,否則就需要維護人員重新配置。

 

2.1 獲取gitlab.rb

在新伺服器上,使用scp命令將老伺服器(192.168.1.1)的備份檔案複製到/etc/gitlab/目錄下。

scp [email protected]:/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 [email protected]:/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 [email protected]:/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