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 で実行されるゲスト エージェントとメタデータ スクリプトの実行可能ファイルが含まれています。Linux ゲスト エージェントは、次の機能をサポートしています。Linux ゲスト エージェントは、次のように Compute Engine サービスと通信します。 + VM メタデータからデータを読み取り、データを書き込む + シリアルポートにログを送信し、必要に応じて Cloud Logging に送信します。
Linux ゲスト エージェントは、分析とデバッグに使用するテレメトリー データをゲスト OS から収集します。テレメトリー データには、OS 名、OS バージョン、OS カーネル リリース、OS カーネル バージョン、OS エージェント バージョンが含まれます。テレメトリー データの収集を無効にするには、VM レベルまたはプロジェクト レベルで次のメタデータ
disable-guest-telemetry=TRUE
を設定します。このパッケージのソースコードを確認するには、GitHub の guest-agent をご覧ください。
google-compute-engine-oslogin
パッケージには、OS Login のバイナリ、モジュール、スクリプトが含まれています。OS Login を使用し、Identity and Access Management(IAM)ロールを使用して VM インスタンスへのアクセスを管理できます。パッケージには次のものが含まれます。
- 承認済み鍵コマンド。ユーザーの OS Login プロファイルから sshd へ、ログイン時にSSH 認証鍵でユーザーを認証するために行います。
- Name Service Switch(NSS)モジュール。OS Login のユーザーとグループ情報をシステムで使用可能にするためのサポートを提供します。
- プラガブル認証モジュール(PAM)。承認(および 2 要素サポートが有効になっている場合は認証)サポートを提供することで、システムが Google Cloud IAM 権限を使用して、インスタンスにログインするか、sudo 経由でroot としてオペレーションを実行する機能を管理します。
google_oslogin_nss_cache
。ローカル ユーザーとグループ キャッシュを更新するためのユーティリティ。selinux
。SELinux を構成して OS Login をサポートするための SELinux ポリシー定義ファイルと、コンパイル済みポリシー パッケージが含まれています。
OS Login のコンポーネントは、次のように Compute Engine サービスと通信します。
- VM メタデータとの間のデータの読み取りと書き込み
- シリアルポート(必要に応じて Cloud Logging)にログを送信
このパッケージのソースコードを確認するには、GitHub の guest-oslogin をご覧ください。
gce-disk-expand
コンポーネントは、次のように Compute Engine サービスと通信します。- シリアルポートにログを送信
このパッケージのソースコードを確認するには、GitHub の guest-diskexpand をご覧ください。
google-osconfig-agent
パッケージには、VM Manager が OS インベントリ、パッチ、OS ポリシーの管理に使用する 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 VM のアカウントと認証情報を管理する
- ネットワーク インターフェースの構成
- HTTPS メタデータ サーバー エンドポイントを使用してメタデータをクエリする
- Windows フェイルオーバー クラスタのサポートを提供
Windows ゲスト エージェントは、次のように Compute Engine サービスと通信します。 + VM メタデータからデータを読み取り、データを書き込む + Windows アプリケーション イベントログ、シリアルポート、Cloud Logging にログを送信する
Windows ゲスト エージェントは、分析とデバッグに使用するテレメトリー データをゲスト OS から収集します。テレメトリー データには、OS 名、OS バージョン、OS カーネル リリース、OS カーネル バージョン、OS エージェント バージョンが含まれます。テレメトリー データの収集を無効にするには、VM レベルまたはプロジェクト レベルで次のメタデータ
disable-guest-telemetry=TRUE
を設定します。このエージェントのソースコードを確認するには、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、startup、shutdown の実行に使用されるスクリプトとバイナリが含まれています。スクリプトは、次のように Compute Engine サービスと通信します。
- VM メタデータとの間のデータの読み取りと書き込み
sysprep-specialize-script-url
とwindows-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
パッケージには、ゲスト環境のインストールとメンテナンスに使用されるパッケージ マネージャーのバイナリが含まれています。スクリプトは、
packages.cloud.google.com
の Google Cloud リポジトリからデータを読み取ることで、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 インベントリ、パッチ、OS ポリシーの管理に VM Manager で使用される 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 |
Virtio メモリバルーン ドライバ | google-compute-engine-driver-balloon |
Google 仮想 NIC | google-compute-engine-driver-gvnic |
各ドライバは GooGet を使用してパッケージ化され、Cloud Repository に公開されます。ドライバのソースコードは、GitHub の compute-windows-drivers にあります。すべての Google Cloud Windows イメージは、GooGet ツールと Cloud Repository を使用してあらかじめ構成されています。GooGet をインストールしてリポジトリを自分で設定する必要がある場合は、パッケージングとパッケージの配布をご覧ください。
特定のドライバをインストールまたはアップグレードするには、次のコマンドを実行します。
googet install DRIVER_PACKAGE_NAME
次のステップ
ゲスト環境のインストールで、ゲスト環境のインストール手順を確認する。