2.10. 自動化のための Red Hat Quay の事前設定
Red Hat Quay には、自動化をサポートする複数の設定オプションがあります。これらのオプションはデプロイメントの前に設定でき、ユーザーインターフェイスとの対話の必要性を最小限に抑えることができます。
2.10.1. API による最初のユーザー作成の許可 リンクのコピーリンクがクリップボードにコピーされました!
/api/v1/user/initialize API を使用して最初のユーザーを作成するには、FEATURE_USER_INITIALIZE パラメーターを true に設定します。既存の組織の OAuth アプリケーションによって生成された OAuth トークンを必要とする他のすべてのレジストリー API 呼び出しとは異なり、API エンドポイントには認証は必要ありません。
Red Hat Quay のデプロイ後に、API を使用して他のユーザーがすでに作成されていない限り、quayadmin などのユーザーを作成できます。詳細は、API を使用して最初のユーザーを作成する を参照してください。
2.10.2. API 一般アクセスの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay レジストリー API の一般的なアクセスを許可するには、設定オプション BROWSER_API_CALLS_XHR_ONLY を false に設定します。
2.10.3. スーパーユーザーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay のデプロイ後に、ユーザーを作成できます。最初のユーザーには、完全な権限を持つ管理者権限を付与することを推奨します。すべてのパーミッションは、SUPER_USER 設定オブジェクトを使用して事前に設定できます。以下に例を示します。
2.10.4. ユーザー作成の制限 リンクのコピーリンクがクリップボードにコピーされました!
スーパーユーザーを設定したら、新しいユーザーをスーパーユーザーグループに作成する機能を制限できます。ユーザー作成を制限するには、FEATURE_USER_CREATION を false に設定します。以下に例を示します。
2.10.5. 新機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
新しい Red Hat Quay 3.8 機能を使用するには、以下の機能の一部またはすべてを有効にします。
2.10.6. 新機能の有効化 リンクのコピーリンクがクリップボードにコピーされました!
新規の Red Hat Quay 3.7 機能を使用するには、以下の機能の一部またはすべてを有効にします。
2.10.7. 自動化の推奨設定 リンクのコピーリンクがクリップボードにコピーされました!
自動化には、以下の config.yaml パラメーターが推奨されます。
2.10.8. 初期設定を使用した Red Hat Quay Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、初期設定を使用して OpenShift Container Platform に Red Hat Quay をデプロイします。
前提条件
-
ocCLI がインストールされている。
手順
設定ファイルを使用してシークレットを作成します。
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-secretCopy 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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
- API を使用した最初のユーザーの作成
2.10.9. API を使用した Red Hat Quay のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、API を使用して Red Hat Quay をデプロイする方法を説明します。
前提条件
-
設定オプション
FEATURE_USER_INITIALIZEはtrueに設定する。 - データベースにユーザーが存在していない。
Red Hat Quay デプロイメントを事前に設定する方法は、自動化のための Red Hat Quay の設定 セクションを参照してください。
2.10.9.1. API を使用した最初のユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Red Hat Quay 組織で最初のユーザーを作成します。
この手順では、"access_token": true を指定して OAuth トークンを要求します。
root ユーザーとして、次のコマンドを入力して
python39をインストールします。sudo yum install python39
$ sudo yum install python39Copy to Clipboard Copied! Toggle word wrap Toggle overflow Python 3.9 の
pipパッケージマネージャーをアップグレードします。python3.9 -m pip install --upgrade pip
$ python3.9 -m pip install --upgrade pipCopy to Clipboard Copied! Toggle word wrap Toggle overflow pipパッケージマネージャーを使用してbcryptパッケージをインストールします。pip install bcrypt
$ pip install bcryptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Python 3.9 の
bcryptパッケージを使用して、安全なハッシュ化されたパスワードを生成します。python3.9 -c 'import bcrypt; print(bcrypt.hashpw(b"subquay12345", bcrypt.gensalt(12)).decode("utf-8"))'$ python3.9 -c 'import bcrypt; print(bcrypt.hashpw(b"subquay12345", bcrypt.gensalt(12)).decode("utf-8"))'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay 設定ファイルを開き、以下の設定フィールドを更新します。
FEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadminFEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Red Hat Quay サービスを停止します。
sudo podman stop quay
$ sudo podman stop quayCopy 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:allowCopy 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=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.10.9.2. OAuth トークンの使用 リンクのコピーリンクがクリップボードにコピーされました!
API の呼び出し後に、返される OAuth コードを指定して残りの Red Hat Quay API を呼び出すことができます。
前提条件
-
/api/v1/user/initializeAPI を呼び出し、ユーザー名、パスワード、およびメールアドレスに渡している。
手順
以下のコマンドを入力して、現在のユーザーの一覧を取得します。
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ユーザーの詳細が返されます。
2.10.9.3. API を使用した組織の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、API を使用して Red Hat Quay 組織を作成する方法を説明します。
前提条件
-
/api/v1/user/initializeAPI を呼び出し、ユーザー名、パスワード、およびメールアドレスに渡している。 - 返された 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/testorgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow