GitLabのバックアップリストア方法

f:id:tocguitar1:20170222090339j:plain

最近。。。

社内でGitを根付かせたく、GitLabを勝手に導入して有志を募り、

勝手に運用することにしたんですが、思った通りというか、

やっぱりというか、Gitの素晴らしさにみんな感動していて

自分もGitLabを使うの初めてだったんですが、中々いいぞとなりました


しかし、貧弱なりソースのサーバーで稼働させていたため、

早めに移設しなければとなり、

その際にバックアップとリストアについて調べた知見となります


とにかくGitLabはインストールからバックアップ、リストア、

バージョンアップまで超やりやすい素晴らしいソフトですね!

これが無料で使えるなんて信じられない!アメイジング


環境

  • OS:CentOS6.8
  • バックアップ側のGitLabバージョン:8.15.4
  • リストア側のGitLab:8.16.6


手順

バックアップ

バックアップしたいGitLabで以下のコマンドを打つだけ!

$ gitlab-rake gitlab:backup:create

すると、以下のディレクトリにバックアップファイルが生成されています

  • /var/opt/gitlab/backups
-rw-------. 1 git git 3959173120  2月 21 18:09 2017 1487667729_2017_02_21_gitlab_backup.tar  

このファイルをSCPコマンド等でリストアしたいGitLabへ送りつけます

※転送先でファイルのグループとユーザーがgitになっていることを確認!


リストア

リストアする側のGitLabで以下のコマンドを打つだけ!

$ gitlab-rake gitlab:backup:restore

※複数バックアップファイルがある場合は、以下のようにタイムスタンプ部分を指定する!

$ gitlab-rake gitlab:backup:restore BACKUP=1487667729_2017_02_21

以上!簡単!


つまづいたところ

じつはバックアップ側とリストア側でバージョン差分があったので、

最初リストアするとき、下記エラーで怒られました

$ gitlab-rake gitlab:backup:restore
Unpacking backup ... done                                                              
GitLab version mismatch:                                                               
  Your current GitLab version (8.16.6) differs from the GitLab version in the backup!  
  Please switch to the following version and try again:                                
  version: 8.15.4                                                                      
                                                                                       
Hint: git checkout v8.15.4                                                             


そしてGitLabのバージョンアップ方法が中々見つからず

少し時間がかかりましたが、やはりバージョンアップも簡単でしたね!


なので、バックアップ側のGitLabのバージョンを上げてから

バックアップファイルを作成し、再度リストアしたところうまくいきました


バージョンアップもyumで最新のモジュール引っ張ってきて、

GitLabの関連サービスを停止させたあとに

reconfigureするだけだったのでほんとうに楽ちんでした!

$ yum install gitlab-ce
$ gitlab-ctl reconfigure


GitLab最高!!


参考

ez-net.jp