18.2. スタンドアロンデプロイメントでの Red Hat Quay の復元

この手順では、スタンドアロンデプロイメントで Red Hat Quay を復元する方法について説明します。

前提条件

  • Red Hat Quay デプロイメントをバックアップしている。

手順

  1. Red Hat Quay コンテナー内の /conf/stack にバインドマウントする新しいディレクトリーを作成します。

    $ mkdir /opt/new-quay-install
  2. 「スタンドアロンデプロイメントでの Red Hat Quay のバックアップ」 で作成した一時バックアップディレクトリーの内容を、ステップ 1 で作成した new-quay-install1 ディレクトリーにコピーします。

    $ cp /tmp/quay-backup/quay-backup.tar.gz /opt/new-quay-install/
  3. 次のコマンドを入力して、new-quay-install ディレクトリーに移動します。

    $ cd /opt/new-quay-install/
  4. Red Hat Quay ディレクトリーの内容を抽出します。

    $ tar xvf /tmp/quay-backup/quay-backup.tar.gz *

    出力例:

    config.yaml
    config.yaml.bak
    extra_ca_certs/
    extra_ca_certs/ca.crt
    ssl.cert
    ssl.key
  5. 次のコマンドを入力して、バックアップした config.yaml ファイルから DB_URI を呼び出します。

    $ grep DB_URI config.yaml

    出力例:

    postgresql://<username>:test123@172.24.10.50/quay
  6. 次のコマンドを実行して、PostgreSQL データベースサーバーに入ります。

    $ sudo postgres
  7. 次のコマンドを入力して、psql と入力し、172.24.10.50 に新しいデータベースを作成して、quay データベースを復元します (例: example_restore_registry_quay_database)。

    $ psql "host=172.24.10.50  port=5432 dbname=postgres user=<username>  password=test123"
    postgres=> CREATE DATABASE example_restore_registry_quay_database;

    出力例:

    CREATE DATABASE
  8. 次のコマンドを実行して、データベースに接続します。

    postgres=# \c "example-restore-registry-quay-database";

    出力例:

    You are now connected to database "example-restore-registry-quay-database" as user "postgres".
  9. 次のコマンドを実行して、Quay データベースの pg_trmg エクステンションを作成します。

    example_restore_registry_quay_database=> CREATE EXTENSION IF NOT EXISTS pg_trgm;

    出力例:

    CREATE EXTENSION
  10. 次のコマンドを入力して、postgres CLI を終了します。

    \q
  11. 次のコマンドを実行して、データベースのバックアップを新しいデータベースにインポートします。

    $ psql "host=172.24.10.50 port=5432 dbname=example_restore_registry_quay_database user=<username> password=test123"  -W <  /tmp/quay-backup/quay-backup.sql

    出力例:

    SET
    SET
    SET
    SET
    SET

    Red Hat Quay のデプロイメントを再起動する前に config.yamlDB_URI の値を postgresql://<username>:test123@172.24.10.50/quay から postgresql://<username>:test123@172.24.10.50/example-restore-registry-quay-database に更新してください。

    注記

    DB_URI の形式は DB_URI postgresql://<login_user_name>:<login_user_password>@<postgresql_host>/<quay_database> です。ある PostgreSQL サーバーから別の PostgreSQL サーバーに移動する場合は、<login_user_name><login_user_password>、および <postgresql_host> の値を同時に更新します。

  12. /opt/new-quay-install ディレクトリーで、DISTRIBUTED_STORAGE_CONFIG バンドルの内容を出力します。

    $ cat config.yaml | grep DISTRIBUTED_STORAGE_CONFIG -A10

    出力例:

    DISTRIBUTED_STORAGE_CONFIG:
       default:
    DISTRIBUTED_STORAGE_CONFIG:
       default:
        - S3Storage
        - s3_bucket: <bucket_name>
          storage_path: /registry
          s3_access_key: <s3_access_key>
          s3_secret_key: <s3_secret_key>
          host: <host_name>
    注記

    Red Hat Quay のデプロイメントを再起動する前に /opt/new-quay-install にある DISTRIBUTED_STORAGE_CONFIG を更新する必要があります。

  13. ステップ 13 で取得した access_key 認証情報を使用して、AWS_ACCESS_KEY_ID をエクスポートします。

    $ export AWS_ACCESS_KEY_ID=<access_key>
  14. ステップ 13 で取得した secret_key を使用して、AWS_SECRET_ACCESS_KEY をエクスポートします。

    $ export AWS_SECRET_ACCESS_KEY=<secret_key>
  15. 次のコマンドを入力して、新しい s3 バケットを作成します。

    $ aws s3 mb s3://<new_bucket_name>  --region us-east-2

    出力例:

    $ make_bucket: quay
  16. 次のコマンドを入力して、すべての Blob を新しい s3 バケットにアップロードします。

    $ aws s3 sync --no-verify-ssl \
    --endpoint-url <example_endpoint_url> 1
    /tmp/quay-backup/blob-backup/. s3://quay/
    1
    Red Hat Quay レジストリーのエンドポイントは、バックアップ前と復元後に同じである必要があります。

    出力例:

    upload: ../../tmp/quay-backup/blob-backup/datastorage/registry/sha256/50/505edb46ea5d32b5cbe275eb766d960842a52ee77ac225e4dc8abb12f409a30d to s3://quay/datastorage/registry/sha256/50/505edb46ea5d32b5cbe275eb766d960842a52ee77ac225e4dc8abb12f409a30d
    upload: ../../tmp/quay-backup/blob-backup/datastorage/registry/sha256/27/27930dc06c2ee27ac6f543ba0e93640dd21eea458eac47355e8e5989dea087d0 to s3://quay/datastorage/registry/sha256/27/27930dc06c2ee27ac6f543ba0e93640dd21eea458eac47355e8e5989dea087d0
    upload: ../../tmp/quay-backup/blob-backup/datastorage/registry/sha256/8c/8c7daf5e20eee45ffe4b36761c4bb6729fb3ee60d4f588f712989939323110ec to s3://quay/datastorage/registry/sha256/8c/8c7daf5e20eee45ffe4b36761c4bb6729fb3ee60d4f588f712989939323110ec
    ...
  17. Red Hat Quay デプロイメントを再起動する前に、config.yaml でストレージ設定を更新します。

    DISTRIBUTED_STORAGE_CONFIG:
       default:
    DISTRIBUTED_STORAGE_CONFIG:
       default:
        - S3Storage
        - s3_bucket: <new_bucket_name>
          storage_path: /registry
          s3_access_key: <s3_access_key>
          s3_secret_key: <s3_secret_key>
          host: <host_name>