ゲスト環境


Google が提供する公開イメージを使用して仮想マシン(VM)インスタンスを起動すると、ゲスト環境が自動的に VM インスタンスにインストールされます。ゲスト環境は、Compute Engine で VM を適切に実行するために、メタデータ サーバーのコンテンツを読み取る一連のスクリプト、デーモン、バイナリから構成されます。メタデータ サーバーは、クライアントからゲスト オペレーティング システムに情報を転送する通信チャネルです。

このドキュメントでは、ゲスト環境のコンポーネント、サポートされているオペレーティング システムの概要について説明します。また、ゲスト環境のインストールまたは更新を手動で行う方法についても説明します。

ゲスト環境を手動でインストールまたは更新する状況

Google が提供する公開イメージを使用して作成された VM インスタンスには、デフォルトでインストールされるゲスト環境が含まれています。

ゲスト環境がインスタンスで実行されているかどうかを確認するには、ゲスト環境を検証するをご覧ください。

インストールされたゲスト環境が古くなっている場合があります。インスタンスで使用できるゲスト環境が古くなっている場合は、ゲスト環境を更新します。

それ以外の場合は、次の状況でゲスト環境の手動インストールが必要になることがあります。

  • カスタム イメージまたは仮想ディスクを Compute Engine プラットフォームにインポートし、ゲスト環境の自動インストールを許可していない。

    仮想ディスクまたはカスタム イメージをインポートするときに、Compute Engine でゲスト環境のインストールを許可することもできます。ただし、インポート プロセスでゲスト環境をインストールしない場合、ゲスト環境を手動でインストールする必要があります。

  • Migrate to Virtual Machines を使用して VM を Compute Engine に移行している

  • ローカル SSD のゲスト環境の最適化を行わないイメージを使用している。

  • v20141218 より前のイメージを使用しているインスタンスがある。

ゲスト環境を手動でインストールする必要がある場合は、ゲスト環境のインストールをご覧ください。

サポートされているオペレーティング システム

Compute Engine で利用可能なサポート対象のオペレーティング システムごとに、固有のゲスト環境パッケージが必要です。こうしたパッケージは、Google またはオペレーティング システムの所有者のいずれかがビルドします。ゲスト環境のパッケージをビルドするユーザーの詳細については、オペレーティング システムの詳細ドキュメントで「標準的なイメージとの大きな違い」のセクションをご覧ください。

Linux ゲスト環境

Linux ゲスト環境がビルドしたのが Google かオペレーティング システムのオーナーかにかかわらず、すべてのビルドに適用される重要なコンポーネントがいくつかあります。

Linux ゲスト環境の基本コンポーネントは、サポートされているディストリビューションに適した構成で作成される deb パッケージまたは rpm パッケージとして提供されます。

Linux ゲスト環境でパッケージ化された主なスクリプト、デーモン、パッケージの概要は次のとおりです。

  • google-compute-engine パッケージには、次のコンポーネントが含まれています。

    • systemd のシステム初期化スクリプト。
    • ホスト名の設定に使用される udev ルール、sysctl ルール、rsyslog 構成、dhcp 構成などのシステム構成。
    • インスタンスの起動時に実行される bash スクリプト。

    このパッケージは、google-guest-agent パッケージと google-compute-engine-oslogin パッケージに依存します。

    このパッケージのソースコードを確認するには、GitHub の guest-configs をご覧ください。

  • google-guest-agent パッケージには、Compute Engine の機能をサポートするためにゲスト OS で実行されるゲスト エージェントとメタデータ スクリプトの実行可能ファイルが含まれています。たとえば、アカウント管理OS Login の統合クロック スキューネットワーク インターフェース管理インスタンスの設定などの機能があります。

    Linux ゲスト エージェントは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • シリアルポートと Cloud Logging(必要な場合)にログを送信する

    このパッケージのソースコードを確認するには、GitHub のゲスト エージェントをご覧ください。

  • google-compute-engine-oslogin パッケージには、OS Login のバイナリ、モジュール、スクリプトが含まれています。OS Login を使用し、Identity and Access Management(IAM)ロールを使用して VM インスタンスへのアクセスを管理できます。

    パッケージには次のものが含まれます。

    • authorized_keys コマンド。ログイン時にユーザーを認証するため、ユーザーの OS Login プロファイルから sshd に SSH 認証鍵を提供します。
    • Name Service Switch(NSS)モジュール。OS Login のユーザーとグループ情報をシステムで使用可能にするためのサポートを提供します。
    • Pluggable Authentication Modules(PAM)。システムが Google Cloud IAM 権限を使用して、インスタンスへのログインを制御したり、root 権限(sudo 経由)で操作できるように、認可サポート(2 要素認証サポートが有効になっている場合は認証サポートを含む)を提供します。
    • google_oslogin_nss_cache。ローカル ユーザーとグループ キャッシュを更新するためのユーティリティ。
    • google_oslogin_control。OS Login 機能を有効または無効にするシェル スクリプト。
    • selinux。OS Login をサポートするように SELinux を構成するための SELinux ポリシー定義ファイルと、コンパイル済みのポリシー パッケージが含まれています。

    OS Login のコンポーネントは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • シリアルポートと Cloud Logging(必要な場合)にログを送信する

    このパッケージのソースコードを確認するには、GitHub の guest-oslogin をご覧ください。

  • gce-disk-expand コンポーネントは、次のように Compute Engine サービスと通信します。

    • シリアルポートにログを送信する

    このパッケージのソースコードを確認するには、GitHub の guest-diskexpand をご覧ください。

  • google-osconfig-agent パッケージには、OS Inventory Management、OS Patch Management、VM Manager を使用した OS Configuration Management で使用される OS Config エージェントが含まれています。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • デフォルトでは、OS Config エージェントは OS Config エージェントが有効になるまで情報を収集または送信しません。エージェントを有効にすると、エージェントは OS Config API サービスと通信します。エージェントによって完了したオペレーションを確認するには、VM Manager 監査ログの表示をご覧ください。

    このエージェントのソースコードを確認するには、GitHub の osconfig をご覧ください。

Windows ゲスト環境

次のリストは、Windows ゲスト環境の一部であるパッケージをまとめたものです。

  • google-compute-engine-windows パッケージには、ローカル ユーザー アカウントの作成とパスワードの設定 / リセットネットワーク インターフェースの構成Windows フェイルオーバー クラスタのサポートの提供に使用される Windows ゲスト エージェントが含まれています。

    Windows ゲスト エージェントは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • Windows アプリケーション イベントログ、シリアルポート、Cloud Logging にログを送信する

    このエージェントのソースコードを確認するには、GitHub のゲスト エージェントをご覧ください。

  • google-compute-engine-sysprep パッケージには、イメージの作成前に Windows インスタンスを一般化するためのスクリプトが含まれています。また、新しいインスタンスを構成する際に最初に起動する instance_setup.ps1 スクリプトも含まれています。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • Windows アプリケーション イベントログとシリアルポートにログを送信する

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-metadata-scripts パッケージには、Compute Engine、sysprep-specialize、startupshutdown の実行に使用されるスクリプトとバイナリが含まれています。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • sysprep-specialize-script-urlwindows-startup-script-url が使用された場合に Cloud Storage のロケーションから読み取る
    • Windows アプリケーション イベントログ、シリアルポート、Cloud Logging にログを送信する

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-powershell パッケージには、PowerShell モジュールが含まれています。このモジュールには、PowerShell スクリプトが他の Windows ゲスト環境スクリプトで使用する共通の関数が含まれています。

    スクリプトは、次の Compute Engine サービスと通信します。

    • デフォルトでは、PowerShell モジュールのロギング関数は Windows アプリケーション イベントログとシリアルポートにログを送信します。

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-auto-updater パッケージには、Compute Engine パッケージを毎日更新するスクリプトが含まれています。このパッケージはデフォルトでインストールされなくなりました。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取る
    • Windows アプリケーション イベントログとコンソールにログを送信するために Googet エージェントを呼び出す

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-compute-engine-diagnostics パッケージには、インスタンスから診断情報を取得し、その情報を Cloud Storage バケットに保存するバイナリが含まれています。このバイナリは Windows ゲスト エージェントによって実行されます。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • Cloud Storage バケットにデータを保存する

    このエージェントのソースコードを確認するには、GitHub の compute-image-tools をご覧ください。

  • certgen パッケージには、インスタンスに証明書を作成するバイナリが含まれています。

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • googet パッケージには、ゲスト環境のインストールとメンテナンスに使用されるパッケージ マネージャーのバイナリが含まれています。

    スクリプトは、次のように Compute Engine サービスと通信します。

    このエージェントのソースコードを確認するには、GitHub の googet をご覧ください。

  • google-compute-engine-vss パッケージは、Microsoft の Volume Shadow Copy Service(VSS)を使用して、永続ディスクのスナップショットの取得に使用する Compute Engine VSS エージェントとプロバイダをインストールします。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • Google Cloud スナップショット サービスと通信する

    このエージェントのソースコードを確認するには、GitHub の compute-image-windows をご覧ください。

  • google-osconfig-agent パッケージには、OS Inventory Management、OS Patch Management、VM Manager を使用した OS Configuration Management で使用される OS Config エージェントが含まれています。

    スクリプトは、次のように Compute Engine サービスと通信します。

    • VM メタデータからデータを読み取り、データを書き込む
    • デフォルトでは、OS Config エージェントは OS Config エージェントが有効になるまで情報を収集または送信しません。エージェントを有効にすると、エージェントは OS Config API サービスと通信します。エージェントによって完了したオペレーションを確認するには、VM Manager 監査ログの表示をご覧ください。

    このエージェントのソースコードを確認するには、GitHub の osconfig をご覧ください。

Compute Engine の Windows 用ドライバ

次の Compute Engine のドライバが Windows イメージ用に維持されています。

ドライバのタイプ パッケージ名
イーサネット アダプタ google-compute-engine-driver-netkvm
SCSI ディスク google-compute-engine-driver-vioscsi
ディスプレイ アダプタ google-compute-engine-driver-gga
クラッシュ ハンドラ google-compute-engine-driver-pvpanic

各ドライバは GooGet を使用してパッケージ化され、Cloud Repository に公開されます。ドライバのソースコードは、GitHub の compute-windows-drivers にあります。すべての Google Cloud Windows イメージは、GooGet ツールと Cloud Repository を使用してあらかじめ構成されています。GooGet をインストールしてリポジトリを自分で設定する必要がある場合は、パッケージングとパッケージの配布をご覧ください。

特定のドライバをインストールまたはアップグレードするには、次のコマンドを実行します。

googet install DRIVER_PACKAGE_NAME

次のステップ

ゲスト環境のインストールで、ゲスト環境のインストール手順を確認する。