Gitlabのバックアップ・リストアの方法を徹底解説!OSはUbuntu 20.04

Gitlab

こんにちはマサです。

今回Gitlabのバックアップ方法を解説します。
Gitlabのハードウェアが壊れてデータロストしましたーというのは取り返しがつかないことになりかねませんのでバックアップをとっておきましょう!

Gitlabのバックアップ・リストアには3つのバックアップが必要です。

・リポジトリとDBのバックアップ
・設定ファイルのバックアップ
・lfsのバックアップ(lfsは事前に設定されている方のみ)

スポンサーリンク

バックアップ方法

Gitlabは公式のリファレンスが充実しているので、下記URLも確認することをおすすめします。

基本的には下記URLを確認しながら行うこともできますが、すべて英語です。
(おそらく日本語のリファレンスもあるかも。。。)

個人的には、調べる際に英語での資料で理解できたほうが情報収集が早くなるので長期的には英語で調べることを推奨します。

参考URL: https://docs.gitlab.com/ee/raketasks/backup_restore.html

リポジトリとDBのバックアップ

GitlabにはリポジトリとDBのバックアップのコマンドは用意されているので下記のコマンド打ち込みます。

/opt/gitlab/bin/gitlab-rake gitlab:backup:create

そうするとlsコマンドでtarファイルが生成されているか確認します。

sudo ls -l /var/opt/gitlab/backups

上記コマンドでファイルの中身を確認すると「1528815659_2021_11_12_gitlab_backup.tar」のようなファイルが保存されているはずです。

設定ファイルのバックアップ

まずは、設定ファイルの保存場所を作成します。

sudo mkdir -p /home/gitlab_backup/setting/

上のmkdirコマンドで保存場所のディレクトを作成しました。

sudo tar -zcvf /home/gitlab_backup/setting/2021_1112_setting.tar.gz  -C /etc gitlab

tarコマンドで設定ファイルのバックアップを取ります。
2021_1112の部分はその日の日付にしてください。

ls -l /home/gitlab_backup/setting/

2021_1112_setting.tar.gz
というファイルが生成されていると思います。

lfsのバックアップ

lfsのバックアップでは、設定されていないので
vi /etc/gitlab/gitlab.rbのファイルが、
[‘lfs_storage_path’] = “/mnt/storage/lfs-objects”になっていることを前提で続けます。

※lfsを設定していない場合は飛ばしてください。

まずは、lfsの保存場所を作成します。

sudo mkdir -p /home/gitlab_backup/lfs/

上のmkdirコマンドで保存場所のディレクトを作成しました。

sudo tar -zcvf /home/gitlab_backup/lfs/2021_1112_lfs-objects.tar.gz  -C /etc gitlab

tarコマンドで設定ファイルのバックアップを取ります。
2021_1112の部分はその日の日付にしてください。

ls -l /home/gitlab_backup/lfs/

2021_1112_lfs.tar.gz
というファイルが生成されていると思います。

バックアップファイルの生成は以上です。

リストア方法

リポジトリとDBのリストア

リポジトリとDBのバックアップ保存したデータを使用します。
下記のコマンドでtarファイル入っていることを確認します。

sudo ls -l /var/opt/gitlab/backups
1528815659_2021_11_12_gitlab_backup.tar

上記のようにデータ入っていると思います。
もし.tarファイルが入ってない場合は、cpコマンドなどでデータを/var/opt/gitlab/backupsへデータを移動してください。

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq

上記コマンドでデータベースに接続しているプロセスを一時的に停止します。

sudo gitlab-backup restore BACKUP=復元するタイムスタンプ
sudo gitlab-backup restore BACKUP=1528815659_2021_11_12 ← 今回の場合

上記コマンドでリポジトリとDBのリストアが完了です。

設定ファイルのリストア

設定ファイルのバックアップの項目でデータを作成したので、tar.gzをファイルを展開させます。

sudo tar zxvf /home/gitlab_backup/setting/2021_1112_setting.tar.gz
ls -l /home/gitlab_backup/setting/

上記のコマンドで展開するとgitlabというディレクトリが生成されたと思います。

sudo mv /home/gitlab_backup/setting/gitlab /etc/gitlab

mvコマンドまたはcpコマンドでetc/gitlabのデータを書き換えます。

lfsのリストア

lfsのバックアップの項目でデータを作成したので、tar.gzファイルを展開させます。

sudo tar -zxvf  /home/gitlab_backup/lfs/2021_1112_lfs-objects.tar.gz

上記のコマンドで展開するとlfs-objectsというファイルが生成されたと思います。

sudo mv /home/gitlab_backup/lfs/lfs-objects /mnt/storage/

mvコマンドまたはcpコマンドでmnt/storageにデータ移行します。

最後にGitlabの再設定・再起動を行います。

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

上記コマンドを打って再起動が完了するまで待ちます。

再起動が完了したことを確認してブラウザからgitlabが復活しているか?確認します。

・username
・password

を入力してサインインできたら完了です。

以上です。

今回のまとめ

今回Gitlabのバックアップについて解説しました。

冒頭でもお伝えしましたがGitlabはリファレンスが充実しているので、ほとんどのことはリファレンスから情報を得ることができますので必要な際は読んでみてください。

最後まで読んでいただきありがとうございました。

Git Large File Storage (LFS) | GitLab
GitLab Community Edition、GitLab Enterprise Edition、Omnibus GitLab、GitLab Runnerの日本語ドキュメントです。

コメント

タイトルとURLをコピーしました