12.3. カスタム GCE イメージの準備と GCP へのアップロードする
カスタムイメージを作成し、RHELImage Builder を使用してそれを Google Cloud Platform (GCP) インスタンスに自動的に更新できます。
12.3.1. RHEL Image Builder を使用した GCP へのイメージのアップロード リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder を使用すると、gce イメージをビルドし、ユーザーまたは GCP サービスアカウントの認証情報を指定して、gce イメージを GCP 環境に直接アップロードできます。
12.3.1.1. CLI を使用して gce イメージを設定して GCP にアップロードする リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder CLI を使用して、gce イメージを GCP にアップロードするための認証情報を含む設定ファイルを設定します。
イメージが起動しなくなるため、gce イメージを GCP に手動でインポートすることはできません。アップロードするには、gcloud または RHEL Image Builder を使用する必要があります。
前提条件
イメージを GCP にアップロードするための有効な Google アカウントと認証情報がある。認証情報は、ユーザーアカウントまたはサービスアカウントから取得できます。認証情報に関連付けられたアカウントには、少なくとも次の IAM ロールが割り当てられている必要があります。
-
roles/storage.admin- ストレージオブジェクトの作成と削除 -
roles/compute.storageAdmin- 仮想マシンイメージの Compute Engine へのインポート
-
- 既存の GCP バケットがあります。
手順
テキストエディターを使用して、次の内容の
gcp-config.toml設定ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
GCP_BUCKETは既存のバケットを指します。アップロード中のイメージの中間ストレージオブジェクトを格納するために使用されます。 -
GCP_STORAGE_REGIONは、通常の Google ストレージリージョンであり、デュアルまたはマルチリージョンです。 -
OBJECT_KEYは、中間ストレージオブジェクトの名前です。アップロード前に存在してはならず、アップロードプロセスが完了すると削除されます。オブジェクト名が.tar.gzで終わらない場合、拡張子がオブジェクト名に自動的に追加されます。 GCP_CREDENTIALSは、GCP からダウンロードした認証情報 JSON ファイルのBase64エンコードされたスキームです。認証情報によって、GCP がイメージをアップロードするプロジェクトが決まります。注記GCP での認証に別のメカニズムを使用する場合、
gcp-config.tomlファイルでのGCP_CREDENTIALSの指定は任意です。他の認証方法は、Authenticating with GCP を参照してください。
-
GCP からダウンロードした JSON ファイルから
GCP_CREDENTIALSを取得します。sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
$ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 追加のイメージ名とクラウドプロバイダープロファイルを使用して Compose を作成します。
sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.toml
$ sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.tomlCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージビルド、アップロード、およびクラウド登録プロセスは、完了に最大 10 分かかる場合があります。
検証
イメージのステータスが FINISHED であることを確認します。
sudo composer-cli compose status
$ sudo composer-cli compose statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.3.1.2. RHEL Image Builder によるさまざまな GCP 認証情報の認証順序の並べ替え リンクのコピーリンクがクリップボードにコピーされました!
RHEL Image Builder でいくつかの異なる種類の認証情報を使用して、GCP で認証できます。複数の認証情報セットを使用して GCP で認証するように RHEL Image Builder が設定されている場合、次の優先順位で認証情報が使用されます。
-
設定ファイルで
composer-cliコマンドで指定された認証情報。 -
osbuild-composerワーカー設定で設定された認証情報。 次の方法で認証方法を自動的に見つけようとする、
Google GCP SDKライブラリーからのApplication Default Credentials。- GOOGLE_APPLICATION_CREDENTIALS 環境変数が設定されている場合、Application Default Credentials は、変数が指すファイルから認証情報を読み込んで使用しようとします。
Application Default Credentials は、コードを実行しているリソースに関連付けられたサービスアカウントを使用して認証を試みます。たとえば、Google Compute Engine 仮想マシンです。
注記イメージをアップロードする GCP プロジェクトを決定するには、GCP 認証情報を使用する必要があります。したがって、すべてのイメージを同じ GCP プロジェクトにアップロードする場合を除き、
composer-cliコマンドを使用してgcp-config.toml設定ファイルに認証情報を指定する必要があります。
12.3.1.2.1. composer-cli コマンドで GCP 認証情報を指定する リンクのコピーリンクがクリップボードにコピーされました!
アップロードターゲット設定の gcp-config.toml ファイルで、GCP 認証情報を指定できます。時間を節約するために、Google アカウント認証情報の JSON ファイルの Base64 エンコードスキームを使用します。
手順
GOOGLE_APPLICATION_CREDENTIALS環境変数に保存されているパスを使用して、Google アカウント認証情報ファイルのエンコードされたコンテンツを取得するには、次のコマンドを実行します。base64 -w 0 "${GOOGLE_APPLICATION_CREDENTIALS}"$ base64 -w 0 "${GOOGLE_APPLICATION_CREDENTIALS}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow アップロードターゲット設定の
gcp-config.tomlファイルで、認証情報を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.3.1.2.2. osbuild-composer ワーカー設定で認証情報を指定する リンクのコピーリンクがクリップボードにコピーされました!
すべてのイメージビルドでグローバルに GCP に使用される GCP 認証認証情報を設定できます。このようにして、イメージを同じ GCP プロジェクトにインポートする場合、GCP へのすべてのイメージのアップロードに同じ認証情報を使用できます。
手順
/etc/osbuild-worker/osbuild-worker.tomlワーカー設定で、次の認証情報の値を設定します。[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"
[gcp] credentials = "PATH_TO_GCP_ACCOUNT_CREDENTIALS"Copy to Clipboard Copied! Toggle word wrap Toggle overflow