読者です 読者をやめる 読者になる 読者になる

Ruby on Rails と歩む我が人生

Railsプログラマを目指す漢のRailsとの歩みの記録

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

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のバージョンアップ方法が中々見つからず少し時間がかかりましたが、やはりバージョンアップも簡単でしたね!

$ 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のバージョンを上げてからバックアップファイルを作成し、再度リストアしたところうまくいきました!バージョンアップもyumで最新のモジュール引っ張ってきて、reconfigureするだけだったのでほんとうに楽ちんでした!GitLab最高!!

$ yum install gitlab-ce
$ gitlab-ctl reconfigure

参考

ez-net.jp