ページの先頭行へ戻る
Enterprise Service Development Platform V1.2.0 インストールガイド(FJCS仕様)
FUJITSU Software

5.2.1 GitLabの移行

本項ではGitLabを移行する手順を記載します。

  1. 「運用ガイド(FJCS仕様)」の「9.2.1 GitLabのバックアップ」を参照し、GitLabのバックアップ(<timestamp>_<version>_gitlab_backup.tar)を取得します。

    取得したバックアップデータおよび、GitLabサーバーの以下を、移行先のマルチクラウド仕様の環境に送付します。

    • /var/FJSGHD/gitlab/config/gitlab-secrets.json
    • /var/FJSGHD/gitlab/data/gitlab-rails/uploads/-/system/以下のファイル
    • /var/FJSGHD/gitlab/data/gitlab-rails/shared/lfs-objects/以下のファイル
    • /var/FJSGHD/gitlab/data/gitlab-rails/shared/artifacts/以下のファイル
    • GitLab Container Registryに登録されているイメージ
  2. 移行先のマルチクラウド仕様Kubernetes masterサーバーにログインし、上記でバックアップしたgitlab-secrets.jsonを参照し、secrets.ymlを以下の内容で作成します。

    production:
      db_key_base: <gitlab-secrets.json内のdb_key_baseの値>
      secret_key_base: <gitlab-secrets.json内のsecret_key_baseの値>
      otp_key_base: <gitlab-secrets.json内のotp_key_baseの値>
      openid_connect_signing_key: <gitlab-secrets.json内のopenid_connect_signing_keyの値>
  3. 以下のコマンドを実行し、rails secrets名を確認する。以降の手順の<rails secrets名>には本手順で確認した値を設定します。

    $ kubectl get secrets -n fj-esdp-system | grep rails-secret
  4. rails secretsを登録しなおします。

    $ kubectl delete secret -n fj-esdp-system <rails secrets名>
    $ kubectl create secret generic <rails secrets名> --from-file=secrets.yml=<secrets.ymlへのファイルパス> -n fj-esdp-system
  5. GitLabのコンポーネントをRestartします。

    $ kubectl delete pods -lapp=sidekiq,release=fj-gitlab -n fj-esdp-system
    $ kubectl delete pods -lapp=unicorn,release=fj-gitlab -n fj-esdp-system
    $ kubectl delete pods -lapp=task-runner,release=fj-gitlab -n fj-esdp-system
  6. GitLabのtask-runnerのPod名を取得します。以降の手順の<task-runner Pod名>には本手順で確認した値を設定します。

    $ kubectl get pods -lrelease=fj-gitlab,app=task-runner -n fj-esdp-system
  7. バックアップデータからリストアします。

    $ kubectl cp -n fj-esdp-system <<timestamp>_<version>_gitlab_backup.tarへのファイルパス> <task-runner Pod名>:/tmp
    $ kubectl exec <task-runner Pod名> -n fj-esdp-system -it -- backup-utility --restore -f file:///tmp/<timestamp>_<version>_gitlab_backup.tar
  8. 移行元のLFSのファイル、アイコンおよびWiki等にアップロードされたファイル、パイプラインのartifactsおよびContainer Registryのイメージは一括での移行ができません。以下に従い、移行元のバックアップから必要な資産を移行します。

    • /var/FJSGHD/gitlab/data/gitlab-rails/uploads/-/system/以下にプロジェクトIDやユーザーIDに紐づいて、アイコンやアップロードされたファイルがあります。GitLabのWeb画面から再登録します。
    • /var/FJSGHD/gitlab/data/gitlab-rails/shared/lfs-objects/以下にLFSを使用して登録したファイルがあります。移行先GitLabに再登録します。
    • /var/FJSGHD/gitlab/data/gitlab-rails/shared/artifacts/以下のファイルはパイプラインで生成されたartifactsです。必要なファイルを取り出すか、移行先GitLabでパイプラインにより再生成します。
    • GitLab Container Registryに登録されているイメージはDockerコマンド等で移行先環境に再登録してください。