こんにちはマサです。
今回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はリファレンスが充実しているので、ほとんどのことはリファレンスから情報を得ることができますので必要な際は読んでみてください。
最後まで読んでいただきありがとうございました。
コメント