2022年3月18日金曜日

docker-compose で起動した Gitlab にリストアしてみた

docker-compose で起動した Gitlab にリストアしてみた

概要

過去に helm chart で作成した gitlab にリストアしてみました
今回は docker-compose で構築した gitlab にリストアしてみます

環境

  • Gitlab 14.6.6-ee

バックアップの作成

どの環境でも OK です
docker-compose の場合は以下のように作成します
バックアップファイルはコンテナ内に作成されるので何かしらの方法でリストア先のgitlabに持っていきます

  • docker-compose exec gitlab gitlab-backup create
  • docker-compose exec gitlab gitlab-ctl backup-etc

リストア先のGitlabの作成

docker-compose で構築しましょう

puma と sidekiq の停止

リストア先のgitlabで行います

  • docker-compose exec gitlab gitlab-ctl stop puma
  • docker-compose exec gitlab gitlab-ctl stop sidekiq

secret を展開する

まずはシークレットから展開します
今回のシークレット関連のバックアップファイルは「gitlab_config_1234567890_2022_03_16.tar」とします
このファイルをリストア先のコンテナに配置しましょう
今回は /secret 配下に配置しました
あとは tar で展開します

  • docker-compose exec gitlab tar xvf /secret/gitlab_config_1234567890_2022_03_16.tar

展開されると /etc/gitlab 配下に gitlab.rb や gitlab-secrets.json などが上書き展開されます

データファイルの配置

次にデータファイルの展開を行います
今回のデータファイルバックアップファイルは「1234567890_2022_03_16_14.6.6-ee_gitlab_backup.tar」とします
このファイルを /var/opt/gitlab/backups に配置します
また配置したら tar ファイルの権限を git ユーザに変更しましょう

  • docker-compose exec gitlab chown git:git /var/opt/gitlab/backups/1234567890_2022_03_16_14.6.6-ee_gitlab_backup.tar
  • docker-compose exec gitlab ls -ltr /var/opt/gitlab/backups
total 1700
-rw------- 1 git git 389120 Mar 16 01:23 1234567890_2022_03_16_14.6.6-ee_gitlab_backup.tar

リストアの実行

あとはリストアを実行します

  • docker-compose exec gitlab gitlab-backup restore BACKUP=1234567890_2022_03_16_14.6.6-ee

BACKUP 変数で指定する値は tar ファイルの _gitlab_backup.tar より前のファイル名になります

いくつか質問が聞かれますが基本的には yes で OK です
「Restore task is done.」が表示されればリストア完了です

Gitlabの再起動

再起動をして再度 docker-compose に記載されたパラメータを反映します

  • docker-compose restart gitlab

動作確認

  • docker-compose exec gitlab gitlab-rake gitlab:check SANITIZE=true

でエラーにならないことを確認しましょう
またブラウザで gitlab にアクセスしてデータがリストアされていることを確認しましょう

最後に

流れとしては簡単です
ポイントとしては

  • リストア先のバージョンとバックアップ元のGitlabのバージョンを合わせる
  • コンテナの適切な箇所にシークレットとバックアップファイルを配置する
  • リストア先のGitlabは新規のGitlabにする

あたりかなと思います
また ce バージョンと ee バージョンでも挙動が異なる可能性があるので ce or ee も合わせたほうが無難かなと思います

参考サイト

0 件のコメント:

コメントを投稿