第2章 RHEL Image Builder を使用した GCP へのイメージのアップロード

RHEL Image Builderを使用すると、gce イメージをビルドし、ユーザーまたは GCP サービスアカウントの認証情報を指定して、gce イメージを GCP 環境に直接アップロードできます。

2.1. CLI を使用した gce イメージの GCP へのアップロード

gce イメージを GCP にアップロードするための認証情報を含む設定ファイルをセットアップする手順に従います。

警告

イメージが起動しなくなるため、gce イメージを GCP に手動でインポートすることはできません。アップロードするには、gcloud または RHEL Image Builder を使用する必要があります。

前提条件

  • イメージを GCP にアップロードするための有効な Google アカウントと認証情報がある。認証情報は、ユーザーアカウントまたはサービスアカウントから取得できます。認証情報に関連付けられたアカウントには、少なくとも次の IAM ロールが割り当てられている必要があります。

    • roles/storage.admin - ストレージオブジェクトの作成と削除
    • roles/compute.storageAdmin - 仮想マシンイメージの Compute Engine へのインポート
  • 既存の GCP バケットがあります。

手順

  1. テキストエディターを使用して、次の内容で gcp-config.toml 設定ファイルを作成します。

    provider = "gcp"
    
    [settings]
    bucket = "GCP_BUCKET"
    region = "GCP_STORAGE_REGION"
    object = "OBJECT_KEY"
    credentials = "GCP_CREDENTIALS"
    • 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 を参照してください。

  2. GCP からダウンロードした JSON ファイルから GCP_CREDENTIALS を取得します。

    $ sudo base64 -w 0 cee-gcp-nasa-476a1fa485b7.json
  3. 追加のイメージ名とクラウドプロバイダープロファイルを使用して Compose を作成します。

    $ sudo composer-cli compose start BLUEPRINT-NAME gce IMAGE_KEY gcp-config.toml

    イメージビルド、アップロード、およびクラウド登録プロセスは、完了に最大 10 分かかる場合があります。

検証

  • イメージのステータスが FINISHED であることを確認します。

    $ sudo composer-cli compose status