ページの先頭行へ戻る
Enterprise Service Development Platform V1.2.0 運用ガイド
FUJITSU Software

8.2.1 GitLabのバックアップ

手順を実施する環境によって手順が異なります。本製品のバージョンがV1.2.0かつ修正パッチF1013-2021-001が未適用の条件に該当する環境の場合は、後述のV1.2.0(修正パッチF1013-2021-001未適用)のバックアップ手順を参照してください。

バックアップ手順

GitLabの公式ドキュメントを参考にして、バックアップしてください。

バックアップしたデータは、以下のコマンドで取り出すことができます。

  1. GitLabのbackup-utilityコマンドの実行ログに表示されるバックアップファイル名(<timestamp>_<version>_gitlab_backup.tar形式)を控えておきます。
  2. Kubernetes masterサーバー内で、以下のコマンドを実行します。<GITLAB_BACKUP_FILENAME>には、上記で採取したバックアップファイル名を指定します。
    $ GITLAB_BACKUP_FILENAME=<GITLAB_BACKUP_FILENAME>
        $ kubectl -n fj-esdp-system exec \
            `kubectl -n fj-esdp-system get pods| grep fj-gitlab-task-runner | awk -F ' ' '{print $1}'` \
            -it s3cmd get s3://gitlab-backups/${GITLAB_BACKUP_FILENAME} /srv/gitlab/tmp/backup_tars/${GITLAB_BACKUP_FILENAME}
  3. "<ストレージ設定ファイルのstorage.volumes.gitlab.gitlab_taskrunnerの値>/backup_tars"フォルダ配下にバックアップファイルが出力されます。必要に応じて退避させてください。

注意

  • 公式ドキュメントのRELEASE_NAMEには"fj-gitlab"を指定してください。

  • kubectlコマンド実行時には"-n fj-esdp-system"でnamespaceを指定してください。

V1.2.0(修正パッチF1013-2021-001未適用)のバックアップ手順

本手順はすべて、Kubernetes masterサーバーで実施します。

事前準備

以下のコマンドを実行して、0が出力される場合は、事前準備を実行する必要はありません。

$ kubectl -n fj-esdp-system exec -it $(kubectl get pods -n fj-esdp-system |grep fj-gitlab-task-runner | cut -d ' ' -f 1) --  grep use_https /home/git/.s3cfg; echo $?

0が出力されない場合は、以下の手順を実行後、バックアップ・リストアを実行してください。

  1. PostgreSQLのコンテナからPostgreSQLのクライアントアプリケーションを取得します。
    $ kubectl -n fj-esdp-system cp $(kubectl get pods -n fj-esdp-system |grep fj-gitlab-postgresql | cut -d ' ' -f 1):/opt/bitnami/postgresql/bin/ /tmp/pg_bin
  2. PostgreSQLのクライアントアプリケーションをGitLabのコンテナにコピーします。
    $ kubectl -n fj-esdp-system cp /tmp/pg_bin $(kubectl get pods -n fj-esdp-system |grep fj-gitlab-task-runner | cut -d ' ' -f 1):/home/git/bin
  3. GitLabのコンテナにログインします。
    $ kubectl -n fj-esdp-system exec -it $(kubectl get pods -n fj-esdp-system |grep fj-gitlab-task-runner | cut -d ' ' -f 1) -- bash
  4. PostgreSQLのクライアントアプリケーションに実行権限を付与します。
    $ chmod +x -R /home/git/bin
  5. "~/.s3cfg"に設定を追記します
    $ echo "use_https = False" >> /home/git/.s3cfg
  6. GitLabのコンテナからログアウトします。
    $ exit
  7. Kubernetes masterサーバー上の"/tmp/pg_bin"を削除します。
バックアップ
  1. 以下のコマンドでバックアップを生成します。生成したバックアップ名("<timestamp>_<version>_gitlab_backup.tar"形式)が標準出力に表示されるため、バックアップ名を控えます。
    $ kubectl -n fj-esdp-system exec -i $(kubectl get pods -n fj-esdp-system |grep fj-gitlab-task-runner | cut -d ' ' -f 1) -- bash << 'EOS'
    PATH=/home/git/bin:$PATH
    backup-utility
    EOS
  2. 以下のコマンドで生成したバックアップを取得します。<バックアップ名>には控えたバックアップ名を指定します。以下のコマンドで出力されるバックアップは"<ストレージ設定ファイルのstorage.volumes.gitlab.gitlab_taskrunnerの値>/backup_tars"フォルダ配下に出力されます。必要に応じて退避させてください。
    $ kubectl -n fj-esdp-system exec -it $(kubectl get pods -n fj-esdp-system |grep fj-gitlab-task-runner | cut -d ' ' -f 1) -- s3cmd get s3://gitlab-backups/<バックアップ名> /srv/gitlab/tmp/backup_tars/
  3. GitLabの公式ドキュメントを参考にして、Secretをバックアップします。バックアップしたSecretは必要に応じて退避してください。

注意

  • kubectlコマンド実行時には"-n fj-esdp-system"でnamespaceを指定してください。