3.13. 自動化のための Red Hat Quay の事前設定
Red Hat Quay は、自動化を可能にするいくつかの設定オプションをサポートします。ユーザーはデプロイメント前にこれらのオプションを設定して、ユーザーインターフェイスとの対話の必要性を減らすことができます。
3.13.1. API による最初のユーザー作成の許可 リンクのコピーリンクがクリップボードにコピーされました!
最初のユーザーを作成するには、FEATURE_USER_INITIALIZE
パラメーターを true
に設定し、/api/v1/user/initialize
API を呼び出す必要があります。既存の組織の OAuth アプリケーションによって生成された OAuth トークンを必要とする他のすべてのレジストリー API 呼び出しとは異なり、API エンドポイントは認証を必要としません。
他のユーザーが作成されていない場合、ユーザーは Red Hat Quay のデプロイ後に API を使用して quayadmin
などのユーザーを作成できます。詳細は、API を使用して最初のユーザーを作成する を参照してください。
3.13.2. API 一般アクセスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay レジストリー API への一般アクセスを許可するには、BROWSER_API_CALLS_XHR_ONLY
設定オプションを false
に設定する必要があります。
3.13.3. スーパーユーザーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay をデプロイしたら、ユーザーを作成し、最初のユーザーに完全な権限を持つ管理者権限を付与できます。SUPER_USER
設定オブジェクトを使用すると、事前に完全な権限を設定できます。以下に例を示します。
3.13.4. ユーザー作成の制限 リンクのコピーリンクがクリップボードにコピーされました!
スーパーユーザーを設定した後、FEATURE_USER_CREATION
を false
に設定することで、新しいユーザーを作成できる権限をスーパーユーザーグループに制限できます。以下に例を示します。
3.13.5. Red Hat Quay 3.13 の新機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay 3.13 の新機能を使用するには、次の機能の一部またはすべてを有効にします。
3.13.6. 自動化の推奨設定 リンクのコピーリンクがクリップボードにコピーされました!
自動化には、以下の config.yaml
パラメーターが推奨されます。
3.13.7. 初期設定を使用した Red Hat Quay Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、初期設定を使用して OpenShift Container Platform に Red Hat Quay をデプロイします。
前提条件
-
oc
CLI がインストールされている。
手順
設定ファイルを使用してシークレットを作成します。
oc create secret generic -n quay-enterprise --from-file config.yaml=./config.yaml init-config-bundle-secret
$ oc create secret generic -n quay-enterprise --from-file config.yaml=./config.yaml init-config-bundle-secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow quayregistry.yaml
ファイルを作成します。以下のように、管理対象外のコンポーネントを特定し、作成されたシークレットを参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay レジストリーをデプロイします。
oc create -n quay-enterprise -f quayregistry.yaml
$ oc create -n quay-enterprise -f quayregistry.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の手順
3.13.8. API を使用した最初のユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Red Hat Quay 組織で最初のユーザーを作成します。
前提条件
-
設定オプション
FEATURE_USER_INITIALIZE
はtrue
に設定する。 - データベースにユーザーが存在していない。
この手順では、"access_token": true
を指定して OAuth トークンを要求します。
Red Hat Quay 設定ファイルを開き、以下の設定フィールドを更新します。
FEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadmin
FEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadmin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Red Hat Quay サービスを停止します。
sudo podman stop quay
$ sudo podman stop quay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Red Hat Quay サービスを開始します。
sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}
$ sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
CURL
コマンドを実行して、ユーザー名、パスワード、電子メール、およびアクセストークンを使用して新しいユーザーを生成します。curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'
$ curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功すると、このコマンドはユーザー名、メール、および暗号化されたパスワードが含まれるオブジェクトを返します。以下に例を示します。
{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allow
{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allow
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースにユーザーが存在している場合は、エラーが返されます。
{"message":"Cannot initialize user in a non-empty database"}
{"message":"Cannot initialize user in a non-empty database"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パスワードが 8 文字以上でない場合や、空白が含まれている場合には、エラーが返されます。
{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}
{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、Red Hat Quay デプロイメントにログインします。
sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=false
$ sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13.8.1. OAuth トークンの使用 リンクのコピーリンクがクリップボードにコピーされました!
API の呼び出し後に、返される OAuth コードを指定して残りの Red Hat Quay API を呼び出すことができます。
前提条件
-
/api/v1/user/initialize
API を呼び出し、ユーザー名、パスワード、およびメールアドレスに渡している。
手順
以下のコマンドを入力して、現在のユーザーの一覧を取得します。
curl -X GET -k -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/superuser/users/
$ curl -X GET -k -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/superuser/users/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このインスタンスでは、これまで作成した唯一のユーザーであるため、
quayadmin
ユーザーの詳細が返されます。
3.13.8.2. API を使用した組織の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、API を使用して Red Hat Quay 組織を作成する方法を説明します。
前提条件
-
/api/v1/user/initialize
API を呼び出し、ユーザー名、パスワード、およびメールアドレスに渡している。 - 返された OAuth コードを指定して、残りの Red Hat Quay API を呼び出している。
手順
組織を作成するには、
api/v1/organization/
エンドポイントへの POST 呼び出しを使用します。curl -X POST -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/ --data '{"name": "testorg", "email": "testorg@example.com"}'
$ curl -X POST -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/ --data '{"name": "testorg", "email": "testorg@example.com"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
"Created"
"Created"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、作成した組織の詳細を取得できます。
curl -X GET -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://min-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/testorg
$ curl -X GET -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://min-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/testorg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow