8.2. API を使用してデプロイされたシステムにアクセスするための認証情報を設定する
Red Hat Insights イメージ UI インターフェイスを使用してブループリントにユーザー名とパスワードを追加することはできません。イメージにユーザー名とパスワードを追加するには、Image-builder service API を使用します。
次の例は、Insights Image Builder で作成された VMware OVA イメージタイプに認証情報を追加する方法を示しています。この方法を使用して、他のイメージタイプに認証情報を追加することもできます。
前提条件
- Hybrid Cloud Console にアクセスします。
- OAuth 2.0 認可。
- オフライントークンを作成した。オフライントークンの生成 を参照してください。
- Image-builder service API へのアクセス。
-
jq
ツールがインストールされている。
手順
Red Hat API トークン を使用して生成したオフライントークンは、Image Builder で直接使用できません。使用するには、次の手順を実行します。
-
オフライントークンを
OFFLINE_TOKEN
変数に保存します。 次のコマンドを使用して、オフライントークンをアクセストークンと交換します。
$ OFFLINE_TOKEN=”YOUR_OFFLINE_TOKEN” $ curl --silent \ --request POST \ --data grant_type=refresh_token \ --data client_id=rhsm-api \ --data refresh_token=$OFFLINE_TOKEN \ https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token \ | jq .
次の例のような出力が生成されます。
{ "access_token": "oiZjo1Mjhk...", "expires_in": 900, "refresh_expires_in": 0, "refresh_token": "eyJhbG...", "token_type": "bearer", "not-before-policy": 0, "session_state": "f0dbb8d4-4e4e-4654-844c-6f3704c84422", "scope": "offline_access" }
-
オフライントークンを
jq
を使用して JSON ペイロードから実際のアクセストークンを取得し、次のスニペットを使用して変数に保存します。$ access_token=$( \ curl --silent \ --request POST \ --data grant_type=refresh_token \ --data client_id=rhsm-api \ --data refresh_token=$OFFLINE_TOKEN \ https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token \ | jq -r .access_token \ )
アクセストークンには有効期限があります。認可エラーが発生した場合は、前のコマンドを再実行して新しいアクセストークンを生成します。
システムで、
.json
形式で作成リクエストを作成します。次の例では、x86_64 CPU アーキテクチャー用の最新の RHEL 9.4ova
を作成します。$ cat request.json { "image_name": "ova_image_name", "distribution": "rhel-94", "image_requests": [ { "architecture": "x86_64", "image_type": "vsphere-ova", "upload_request": { "type": "vmdk", "options": {} } } ], "customizations": { "users": [ { "name": "user-name", "ssh_key": "ssh-rsa AAAAB...qfGI+vk", "password": "password" } ] } }
Image Builder API に作成リクエストを送信します。
$ curl --silent \ --request POST \ --header "Authorization: Bearer $access_token" \ --header "Content-Type: application/json" \ --data @request.json \ https://console.redhat.com/api/image-builder/v1/compose
リクエストが成功すると、次のようなイメージ ID の出力が表示されます。
{"id":"fd4ecf3c-f0ce-43dd-9fcc-6ad11208b939"}
イメージビルドのステータスを確認します。
$ curl \ --silent \ --header "Authorization: Bearer $access_token" \ "https://console.redhat.com/api/image-builder/v1/composes/$compose_id" \ | image_ID.
リクエストが成功すると、次のようなイメージ ID の出力が表示されます。
{"id":"fd4ecf3c-f0ce-43dd-9fcc-6ad11208b939"}
Red Hat Hybrid Cloud Console にアクセスして、イメージビルドの進行状況を確認することもできます。
イメージがビルドされると、次の出力が表示されます。
リクエストが成功すると、次のようなイメージ ID の出力が表示されます。
{ "image_status": { "status": "success", "upload_status": { "options": { "url": "https://image-builder-service-production.s3.amazonaws.com/composer-api-76...-disk.ova?e42..." }, "status": "success", "type": "aws.s3" } } }
イメージの作成が完了したら、イメージをダウンロードします。
$ curl --location --output vsphere-ova.vmdk \ “https://image-builder-service-production.s3.amazonaws.com/composer-api-76...-disk.ova?e42...”
イメージはシステムに保存され、使用できる状態になります。
次のステップ
- イメージを、CLI を使用して vSphere にデプロイ するか、vSphere GUI にデプロイします。
関連情報