第15章 Google Compute Engine でのクラウドインスタンスのプロビジョニング

Red Hat Satellite は、新規仮想マシンの作成、電源管理の状態の制御など、Google Compute Engine (GCE) と対話できます。GCE ホストの作成では、イメージベースのプロビジョニングのみがサポートされます。

前提条件

  • Red Hat Enterprise Linux の同期済みのコンテンツリポジトリー。詳細は、『コンテンツ管理ガイド』の「Red Hat リポジトリーの同期」を参照してください。
  • ホスト登録用のアクティベーションキー。詳細は、『コンテンツ管理ガイド』の「アクティベーションキーの作成」を参照してください。
  • GCE プロジェクトで、必要な IAM Compute ロールでサービスアカウントを設定します。詳細は、GCE ドキュメントの Compute Engine IAM roles を参照してください。
  • GCE プロジェクト全体のメタデータで、enable-osloginFALSE に設定します。詳細は、GCE ドキュメントの Enabling or disabling OS Login を参照してください。
  • オプション: GCE ホストで Puppet を使用するには、管理 > 設定 > Puppet に移動して、証明書での UUID の使用 設定を有効にして、Puppet が一貫性のある Puppet 証明書 ID を使用するように設定します。
  • ニーズに合わせて finish または user_data プロビジョニングテンプレートと使用するオペレーティングシステムを関連付けます。プロビジョニングテンプレートに関する詳細は、「プロビジョニングテンプレート」を参照してください。

15.1. Satellite Server への Google Compute Engine 接続の追加

この手順を使用して、Google Compute Engine (GCE) を Satellite のコンピューティングリソースとして追加します。

手順

  1. GCE では、JSON 形式でサービスアカウントキーを生成し、このファイルを Satellite Server の /usr/share/foreman/ ディレクトリーにアップロードします。
  2. Satellite Server で、サービスアカウントキーの所有者を foreman ユーザーに変更します。

    # chown foreman /usr/share/foreman/gce_key.json
  3. サービスアカウントキーのパーミッションを設定して、ファイルを読み取れるようにします。

    # chmod 0600 /usr/share/foreman/gce_key.json
  4. サービスアカウントキーの SELinux コンテキストを復元します。

    # restorecon -vv /usr/share/foreman/gce_key.json
  5. Satellite Web UI で インフラストラクチャー > コンピュートリソース に移動して、コンピュートリソースの作成 をクリックします。
  6. 名前 フィールドには、コンピュートリソースの名前を入力します。
  7. プロバイダー の一覧から Google を選択します。
  8. オプション: 説明 フィールドに、リソースの説明を入力します。
  9. Google プロジェクト ID フィールドに、プロジェクト ID を入力します。
  10. クライアント E-メール フィールドに、クライアントのメールアドレスを入力します。
  11. 証明書パス フィールドに、/usr/share/foreman/gce_key.json など、サービスアカウントキーへのパスを入力します。
  12. ゾーンのロード をクリックして GCE 環境からゾーン一覧を生成します。
  13. ゾーン 一覧から使用する GCE ゾーンを選択します。
  14. 送信 をクリックします。

CLI をご利用の場合

  1. GCE では、JSON 形式でサービスアカウントキーを生成し、このファイルを Satellite Server の /usr/share/foreman/ ディレクトリーにアップロードします。
  2. Satellite Server で、サービスアカウントキーの所有者を foreman ユーザーに変更します。

    # chown foreman /usr/share/foreman/gce_key.json
  3. サービスアカウントキーのパーミッションを設定して、ファイルを読み取れるようにします。

    # chmod 0600 /usr/share/foreman/gce_key.json
  4. サービスアカウントキーの SELinux コンテキストを復元します。

    # restorecon -vv /usr/share/foreman/gce_key.json
  5. hammer compute-resource create コマンドを使用して GCE コンピュートリソースを Satellite に追加します。

    # hammer compute-resource create --name 'gce_cr' \
    --provider 'gce' \
    --project 'gce_project_id' \
    --key-path 'gce_key.json' \
    --zone 'us-west1-b' \
    --email 'gce_email'

15.2. Satellite Server への Google Compute Engine イメージの追加

イメージベースのプロビジョニングを使用してホストを作成するには、アクセスの情報およびイメージの場所など、イメージの情報を Satellite Server に追加する必要があります。

手順

  1. Satellite Web UI で、インフラストラクチャー > コンピュートリソース に移動し、Google Chrome Engine 接続の名前をクリックします。
  2. イメージの作成 をクリックします。
  3. 名前 フィールドに、イメージの名前を入力します。
  4. オペレーティングシステム リストから、イメージのベースオペレーティングシステムを選択します。
  5. アーキテクチャー リストから、オペレーティングシステムのアーキテクチャーを選択します。
  6. ユーザー名 フィールドに、イメージにアクセスする時に使用する SSH ユーザー名を入力します。root は SSH キーを使用して GCE インスタンスに接続できないので、root 以外のユーザーを指定してください。ユーザー名は、文字から開始し、小文字と数字を含める必要があります。
  7. イメージ リストの Google Chrome Engine コンピュートリソースからイメージを選択します。
  8. オプション: イメージで cloud-init データなどのユーザーデータ入力をサポートさせるには、ユーザーデータ チェックボックスを選択します。
  9. 送信 をクリックしてイメージの詳細を保存します。

CLI をご利用の場合

  • hammer compute-resource image create コマンドを使用してイメージを作成します。root は SSH キーを使用して GCE インスタンスに接続できないので、--username オプションを使用して、root 以外のユーザーを指定します。ユーザー名は、文字で始まり、小文字と数字で構成されている必要があります。

    # hammer compute-resource image create \
    --name 'gce_image_name' \
    --compute-resource 'gce_cr' \
    --operatingsystem-id 1 \
    --architecture-id 1 \
    --uuid '3780108136525169178' \
    --username 'admin'

15.3. Google Compute Engine の詳細のコンピューティングプロファイルへの追加

この手順を使用して、GCE ハードウェア設定をコンピューティングプロファイルに追加します。このコンピューティングプロファイルを使用して GCE でホストを作成すると、これらの設定が自動的に入力されます。

手順

  1. Satellite Web UI で、インフラストラクチャー > コンピュートプロファイル に移動します。
  2. コンピュートプロファイルウィンドウで、既存のコンピュートプロファイル名をクリックするか、Create Compute Profile をクリックするか、Name を入力して Submit をクリックします。
  3. KVM コンピューティングリソースの名前をクリックします。
  4. マシンタイプ 一覧からプロビジョニングに使用するマシンタイプを選択します。
  5. イメージ リストから、プロビジョニングに使用するイメージを選択します。
  6. ネットワーク リストから、プロビジョニングに使用する GCE ネットワークを選択します。
  7. オプション: 一時的な外部 IP の関連付け チェックボックスを選択して、動的で一時的な IP アドレスを割り当て、Sattelite がホストと通信に使用できるようにします。永続的な IP アドレスが必要な場合には、GCE で静的なパブリック IP アドレスを予約し、ホストにアタッチします。
  8. サイズ (GB) フィールドに、ホストで作成するストレージのサイズを入力します。
  9. 送信 をクリックしてコンピュートプロファイルを保存します。

CLI をご利用の場合

  1. GCE コンピュートリソースで使用するコンピュートプロファイルを作成します。

    # hammer compute-profile create --name gce_profile
  2. GCE の情報をコンピュートプロファイルに追加します。

    # hammer compute-profile values create --compute-profile gce_profile \
    --compute-resource 'gce_cr' \
    --volume "size_gb=20" \
    --compute-attributes "machine_type=f1-micro,associate_external_ip=true,network=default"

15.4. Google Compute Engine でのイメージベースのホストの作成

Satellite では、Google Chrome Engine プロビジョニングを使用して、既存のイメージからホストを作成できます。この新しいホストエントリーで、Google Chrome Engine サーバーが、新規ボリュームのベースとして既存のイメージを使用して、仮想マシンを作成するようにトリガーします。

手順

  1. Satellite Web UI で、ホスト > ホストの作成 に移動します。
  2. 名前 フィールドには、ホストの名前を入力します。
  3. 組織 および ロケーション タブをクリックして、プロビジョニングのコンテキストが現在のコンテキストに自動的に設定されていることを確認します。
  4. ホストグループ リストから、フォームの生成に使用するホストグループを選択します。
  5. デプロイ先 リストから、Google Compute Engine 接続を選択します。
  6. コンピュートプロファイル リストから、仮想マシンの設定を自動的に投入するために使用するプロファイルを選択します。
  7. インターフェース タブをクリックして、ホストのインターフェースで 編集 をクリックします。
  8. 特に以下の項目など、フィールドに自動的に入力されていることを確認します。

    • ホスト タブの 名前DNS 名 になります。
    • MAC アドレス フィールドは空白です。Google Compute Engine サーバーは MAC アドレスをホストに割り当てます。
    • Satellite Server は新規ホストの IP アドレスを自動的に割り当てます。
    • ドメイン フィールドに必要なドメインの情報が入力されていること。
    • ホストの最初のインターフェースで Managed (管理)Primary、および Provision オプションが自動的に選択されていること。選択されていない場合は、選択してください。
  9. オペレーティングシステム タブをクリックして、全フィールドに値が自動的に含まれていることを確認します。
  10. プロビジョニングテンプレート解決 をクリックし、新規ホストから使用する適切なプロビジョニングテンプレートを特定できることを確認します。
  11. 仮想マシン タブをクリックして、これらの設定には、ホストグループおよびコンピュートプロファイルからの情報が入力されていることを確認し、必要に応じて変更してください。
  12. パラメーター タブをクリックして、存在するパラメーターでアクティベーションキーが提供されていることを確認します。提供されていない場合には、アクティベーションキーを追加します。
  13. 送信 をクリックしてホストエントリーを保存します。

CLI をご利用の場合

  • --provision-method image を指定して hammer host create コマンドでホストを作成します。以下の例の値は、環境似合った値に置き換えます。

    # hammer host create \
    --name "GCE_VM" \
    --organization "Your_Organization" \
    --location "Your_Location" \
    --compute-resource gce_cr_name
    --compute-profile "gce_profile_name" \
    --provision-method 'image' \
    --image gce_image_name \
    --root-password "your_root_password" \
    --interface "type=interface,domain_id=1,managed=true,primary=true,provision=true" \
    --puppet-environment-id 1 \
    --puppet-ca-proxy-id 1 \
    --puppet-proxy-id 1 \
    --architecture x86_64 \
    --operatingsystem "operating_system_name"

このコンピュートリソースに対する他のホスト作成パラメーターの情報は、hammer host create --help コマンドを入力します。