ポリシーによる Ops エージェントの管理方法を変更するには、ポリシーを更新します。ポリシーを更新すると、VM Extension Manager は通常 1 分以内に、該当するすべての VM に変更をロールアウトします。ポリシーの変更方法によっては、Ops エージェントが新しい VM にインストールされたり、既存の VM からアンインストールされたりする可能性があります。
始める前に
VM Extension Manager 拡張機能ポリシーの使用を開始する前に、次の操作を行います。
VM Extension Manager ポリシーの管理に必要なロールを付与します。
コマンドライン インターフェースを使用して拡張機能ポリシーを作成して管理する場合、Google Cloud CLI がまだインストールされていない場合は、gcloud をインストールします。
ゾーン VM 拡張機能ポリシーは、Google Cloud コンソールまたは Google Cloud CLI(gcloud)を使用して作成し、管理できます。グローバル VM 拡張機能ポリシーは、gcloud を使用して作成し、管理します。
VM Extension Manager ポリシーの管理に必要なロールを付与する
VM 拡張機能ポリシーの表示、変更、削除に必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
拡張機能ポリシーを表示する:
- VM 拡張機能ポリシー閲覧者 (
roles/compute.vmExtensionPolicyViewer) - VM 拡張機能ポリシー管理者 (
roles/compute.vmExtensionPolicyAdmin)
- VM 拡張機能ポリシー閲覧者 (
-
拡張機能ポリシーを変更する: VM 拡張機能ポリシー管理者 (
roles/compute.vmExtensionPolicyAdmin) -
拡張機能ポリシーを削除する: VM 拡張機能ポリシー管理者 (
roles/compute.vmExtensionPolicyAdmin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、VM 拡張機能ポリシーの表示、変更、削除に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
VM 拡張機能ポリシーを表示、変更、削除するには、次の権限が必要です。
-
拡張機能ポリシーを表示する:
compute.vmExtensionPolicies.list -
拡張機能ポリシーの詳細を表示する:
compute.vmExtensionPolicies.get -
拡張機能ポリシーを変更する:
compute.vmExtensionPolicies.update -
拡張機能ポリシーを削除する:
compute.vmExtensionPolicies.delete
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Compute Engine の IAM ロールと権限の詳細については、Compute Engine のロールと権限をご覧ください。
Ops エージェントを管理する拡張機能ポリシーを変更する
ポリシーによる Ops エージェントの管理方法を変更するには、ポリシーを更新します。ポリシーを更新すると、VM Extension Manager は通常 1 分以内に、該当するすべての VM に変更をロールアウトします。登録ラベルを変更すると、VM が更新されたラベルと一致するかどうかに基づいて、Ops エージェントが新しい VM にインストールされたり、既存の VM からアンインストールされたりする可能性があります。
以降のセクションでは、ポリシーを変更して次の操作を行う方法について説明します。
ゾーン内のすべての VM で Ops エージェントの固定バージョンを更新する
ゾーン内のすべての VM で Ops エージェントの固定バージョンを変更するには、次の操作を行います。
コンソール
ゾーンポリシーを作成するには、 Google Cloud コンソールを使用します。
-
Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
- 更新するポリシーを選択します。
- [編集] をクリックします。
- [拡張機能を管理する] セクションで、次の操作を行います。
- [拡張機能] リストから、
Google Cloud's Extension for Ops Agentを選択します。 - [バージョン] フィールドを変更します。バージョン 2.58.0 以降を使用します。
- [完了] をクリックします。
- [拡張機能] リストから、
- [保存] をクリックします。
gcloud
ゾーンポリシーまたはグローバル ポリシーを作成するには、gcloud CLI を使用します。
ゾーン
--version オプションを指定して gcloud compute zone-vm-extension-policies update コマンドを使用し、固定されたエージェント バージョンを変更します。
gcloud を使用してポリシーを更新すると、リクエストは完全な置換として機能します。リクエストから省略したオプション フィールドは、変更されたポリシーの既存の値を保持するのではなく、デフォルト値に戻ります。
ポリシーによってゾーン内のすべての VM にインストールされている Ops エージェントのバージョンを変更するには、次のコマンドを使用します。
gcloud compute zone-vm-extension-policies update POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--extensions=ops-agent
--version=ops-agent=VERSION
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- ZONE: ターゲット ゾーン(例:
us-central1-f)。 - VERSION: インストールする Ops エージェントのバージョン。バージョン 2.58.0 以降を使用します。
バージョンのリストについては、Ops エージェントの GitHub のリリースページをご覧ください。
--versionオプションを省略した場合、ポリシーによって最新バージョンがインストールされ、新しいバージョンがリリースされると Ops エージェントが更新されます。最新バージョンをインストールする例をご覧ください。
グローバル
--version オプションを指定して gcloud compute global-vm-extension-policies update コマンドを使用し、固定されたエージェント バージョンを変更します。
gcloud を使用してポリシーを更新すると、リクエストは完全な置換として機能します。リクエストから省略したオプション フィールドは、変更されたポリシーの既存の値を保持するのではなく、デフォルト値に戻ります。
グローバル ポリシーによってすべての VM にインストールされている Ops エージェントのバージョンを変更するには、次のコマンドを使用します。
gcloud compute global-vm-extension-policies update POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=slow_rollout \
--version=ops-agent=VERSION
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- VERSION: インストールする Ops エージェントのバージョン。バージョン 2.58.0 以降を使用します。
バージョンのリストについては、Ops エージェントの GitHub のリリースページをご覧ください。
--versionオプションを省略した場合、ポリシーによって最新バージョンがインストールされ、新しいバージョンがリリースされると Ops エージェントが更新されます。最新バージョンをインストールする例をご覧ください。
すべての VM で Ops エージェントの構成を変更する
Ops エージェントの構成を変更する手順は次のとおりです。
コンソール
ゾーンポリシーを作成するには、 Google Cloud コンソールを使用します。
-
Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
- 更新するポリシーを選択します。
- [編集] をクリックします。
- [拡張機能を管理する] セクションで、次の操作を行います。
- [拡張機能] リストから、
Google Cloud's Extension for Ops Agentを選択します。 - [構成ファイルの内容] フィールドに、Ops エージェントの YAML 構成文字列を入力します。
- [完了] をクリックします。
- [拡張機能] リストから、
- [保存] をクリックします。
gcloud
ゾーンポリシーまたはグローバル ポリシーを作成するには、gcloud CLI を使用します。
ゾーン
--config-from-file オプションまたは --config オプションを指定して gcloud compute zone-vm-extension-policies update コマンドを使用し、新しい構成を指定します。
gcloud を使用してポリシーを更新すると、リクエストは完全な置換として機能します。リクエストから省略したオプション フィールドは、変更されたポリシーの既存の値を保持するのではなく、デフォルト値に戻ります。
ポリシーによってゾーン内のすべての VM にインストールされている Ops エージェントの構成を変更するには、次のコマンドを使用します。
gcloud compute zone-vm-extension-policies update POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--extensions=ops-agent
--config-from-file=ops-agent="OPS_AGENT_CONFIG_PATH"
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- ZONE: ターゲット ゾーン(例:
us-central1-f)。 - OPS_AGENT_CONFIG_PATH: Ops エージェントの YAML 構成文字列を含むファイルへのパス。このファイルは、gcloud コマンドを実行する環境に存在する必要があります。
Ops エージェントの構成 YAML は長くなることがあります。構成をファイルに格納して gcloud CLI に渡す方が、コマンドラインで適切な形式の YAML を入力するよりも大幅にエラーが発生しにくくなります。
グローバル
--config-from-file オプションまたは --config オプションを指定して gcloud compute global-vm-extension-policies update コマンドを使用し、新しい構成を指定します。
gcloud を使用してポリシーを更新すると、リクエストは完全な置換として機能します。リクエストから省略したオプション フィールドは、変更されたポリシーの既存の値を保持するのではなく、デフォルト値に戻ります。
ポリシーによってすべての VM にインストールされている Ops エージェントの構成を変更するには、次のコマンドを使用します。
gcloud compute global-vm-extension-policies update POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-predefined-plan=slow_rollout \
--config-from-file=ops-agent="OPS_AGENT_CONFIG_PATH"
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- OPS_AGENT_CONFIG_PATH: Ops エージェントの YAML 構成文字列を含むファイルへのパス。このファイルは、gcloud コマンドを実行する環境に存在する必要があります。
Ops エージェントの構成 YAML は長くなることがあります。構成をファイルに格納して gcloud CLI に渡す方が、コマンドラインで適切な形式の YAML を入力するよりも大幅にエラーが発生しにくくなります。
拡張機能ポリシーの作成または更新時に Ops エージェントのカスタム構成を指定すると、ポリシーによってカスタム構成で Ops エージェントがデプロイされます。エージェントを手動で再起動する必要はありません。
構成は拡張機能ポリシーに基づいて保存されるため、パスワードなどの機密データを構成に含めないでください。構成は拡張機能ポリシーに基づいて保存されるため、構成ファイルを変更してもエージェントの構成は変更されません。適切な gcloud コマンドを使用して、ポリシーに基づいて保存されている構成を更新する必要があります。
- ゾーンポリシーの場合は、
gcloud compute zone-vm-extension-policiesupdateコマンドを使用します。 - グローバル ポリシーの場合は、
gcloud compute global-vm-extension-policiesupdateコマンドを使用します。
Ops エージェントのカスタム構成を指定すると、VM Extension Manager は、ターゲット VM の ユーザー指定の構成ファイル用に Ops エージェントが使用する場所に構成をコピーします。
- Linux:
/etc/google-cloud-ops-agent/config.yaml - Windows:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
VM に config.yaml ファイルが存在する場合、拡張機能ポリシーによって上書きされます。
Google Cloud コンソールと gcloud CLI を使用して VM 拡張機能ポリシーを管理する方法については、VM 拡張機能ポリシーを更新して拡張機能を変更するをご覧ください。
既存のグローバル ポリシーを拡張して新しいゾーンを含める(グローバルのみ)
グローバル ポリシーが作成されてロールアウトされた後に新しいゾーンに VM が作成された場合、VM Extension Manager は新しいゾーンの VM にポリシーを自動的に適用しません。新しいゾーンに VM を含めるには、グローバル ポリシーのロールアウトを再開する必要があります。
グローバル ポリシーのロールアウトを再開するには、gcloud compute global-vm-extension-policies update コマンドを使用し、--rollout-retry-uuid=UUID オプションを指定します。
たとえば、次のコマンドを使用してグローバル ポリシーを作成してロールアウトしたとします。
gcloud compute global-vm-extension-policies create POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--version=ops-agent=2.61.0 \
--rollout-predefined-plan=slow_rollout \
--config-from-file=ops-agent="/usr/ops-agent-config.yaml"
以前に使用されていないゾーンに作成された VM にポリシーを拡張するには、次のコマンドを使用してロールアウトを再開します。
gcloud compute global-vm-extension-policies update test-policy POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--version=ops-agent=2.61.0 \
--rollout-predefined-plan=slow_rollout \
--config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
--rollout-retry-uuid=UUID
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- UUID: 再試行リクエストを識別するユニバーサル固有識別子(UUID)。任意の UUID 生成ツールを使用して作成できます。詳細については、 ロールアウトを再試行する をご覧ください。
一連のゾーンを除外するようにグローバル ポリシーを更新する(グローバルのみ)
Google Cloud プロジェクトの一部のゾーンを除外するグローバル ポリシーを適用するゾーンを更新するには、ポリシーを適用するゾーンを指定する新しいカスタム ロールアウト プランを使用する必要があります。カスタム ロールアウト プランの作成については、
ロールアウト プランについてをご覧ください。ゾーンのセットを指定するには、ロールアウト プランの作成時に locationSelector.includedLocations フィールドを使用します。
カスタム ロールアウト プランを使用する拡張機能ポリシーを更新するには、次の gcloud compute global-vm-extension-policies update コマンドを使用します。
gcloud compute global-vm-extension-policies update POLICY_NAME \
--project=PROJECT_ID \
--extensions=ops-agent \
--rollout-custom-plan=projects/PROJECT_ID/locations/global/rolloutPlans/NEW_CUSTOM_PLAN_NAME \
--rollout-retry-uuid=UUID
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- NEW_CUSTOM_PLAN_NAME: 更新されたカスタム ロールアウト プランに関連付けられた名前。
- UUID: 再試行リクエストを識別するユニバーサル固有識別子(UUID)。任意の UUID 生成ツールを使用して作成できます。詳細については、 ロールアウトを再試行する をご覧ください。
VM 拡張機能ポリシーを削除して Ops エージェントをアンインストールする
Ops エージェントをアンインストールするには、エージェントを管理する VM 拡張機能ポリシーを削除します。別の優先度の低い有効なポリシーが VM に適用され、このポリシーで Ops エージェントも管理されている場合、優先度の低いポリシーに基づいて、エージェントはその VM にインストールされたままになります。
VM Extension Manager は、ポリシーの削除後 1 分以内に、アクセス可能なすべての VM から Ops エージェントを削除します。VM にアクセスできない場合、VM Extension Manager はエージェントの削除をスキップします。VM が再び使用可能になると、VM Extension Manager はその時点でエージェントを削除します。
コンソール
-
Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
- 削除するポリシーをクリックします。
- [削除] をクリックします。
- 確認ダイアログで [削除] をクリックします。
gcloud
ゾーン
Ops エージェントを管理する VM 拡張機能ポリシーを削除するには、gcloud compute zone-vm-extension-policies delete コマンドを使用します。
gcloud compute zone-vm-extension-policies delete POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- ZONE: ターゲット ゾーン(例:
us-central1-f)。
グローバル
Ops エージェントを管理するグローバル VM 拡張機能ポリシーを削除するには、gcloud compute global-vm-extension-policies delete コマンドを使用します。
gcloud compute global-vm-extension-policies delete POLICY_NAME \
--project=PROJECT_ID \
--rollout-predefined-plan=slow_rollout
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
すでに開始されている削除ロールアウトを高速化するには、fast_rollout プランを使用する新しい削除コマンドを発行します。--rollout-retry-uuid=UUID オプションも指定する必要があります。
gcloud compute global-vm-extension-policies delete POLICY_NAME \
--project=PROJECT_ID \
--rollout-predefined-plan=fast_rollout \
--rollout-retry-uuid=UUID
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- UUID: 再試行リクエストを識別するユニバーサル固有識別子(UUID)。任意の UUID 生成ツールを使用して作成できます。詳細については、 ロールアウトを再試行する をご覧ください。
VM 拡張機能ポリシーに関する情報を取得する
既存の VM 拡張機能ポリシーに関する次の情報を取得できます。
- Google Cloud プロジェクト内のすべてのポリシーのリスト。
- 特定のポリシーに関する構成情報。
コンソール
-
Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
このページには、プロジェクト内のすべての VM 拡張機能ポリシーが一覧表示されます。 - 特定の拡張機能ポリシーの詳細を表示するには、ポリシーの名前をクリックします。
gcloud
ゾーン
VM 拡張機能ポリシーを一覧表示する
ゾーン内のすべての VM 拡張機能ポリシーに関する情報を一覧表示するには、gcloud compute zone-vm-extension-policies list コマンドを使用します。
gcloud compute zone-vm-extension-policies list \
--project=PROJECT_ID \
--zone=ZONE \
--page-size=PAGE_SIZE_INTEGER
コマンドの次の変数を置き換えます。
- PROJECT_ID: プロジェクトの ID。
- ZONE: ターゲット ゾーン(例:
us-central1-f)。 - PAGE_SIZE_INTEGER: ページごとに一覧表示するポリシーの数(例:
2)。並べ替えとフィルタリングのオプションの詳細については、gcloud compute zone-vm-extension-policieslistをご覧ください。
名前付き VM 拡張機能ポリシーの説明を取得する
ゾーン内の名前付きポリシーの構成を取得するには、gcloud compute zone-vm-extension-policies describe コマンドを使用します。
gcloud compute zone-vm-extension-policies describe POLICY_NAME \
--project=PROJECT_ID \
--zone=ZONE
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- ZONE: ターゲット ゾーン(例:
us-central1-f)。
グローバル
グローバル VM 拡張機能ポリシーを一覧表示する
グローバル VM 拡張機能ポリシーに関する情報を一覧表示するには、gcloud compute global-vm-extension-policies list コマンドを使用します。
gcloud compute global-vm-extension-policies list \
--project=PROJECT_ID \
--page-size=PAGE_SIZE_INTEGER
コマンドの次の変数を置き換えます。
- PROJECT_ID: プロジェクトの ID。
- PAGE_SIZE_INTEGER: ページごとに一覧表示するポリシーの数(例:
2)。並べ替えとフィルタリングのオプションの詳細については、gcloud compute global-vm-extension-policieslistをご覧ください。
名前付きグローバル VM 拡張機能ポリシーの説明を取得する
ゾーン内の名前付きポリシーの構成を取得するには、gcloud compute global-vm-extension-policies describe コマンドを使用します。
gcloud compute global-vm-extension-policies describe POLICY_NAME \
--project=PROJECT_ID
コマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
Google Cloud コンソールと gcloud CLI を使用して VM 拡張機能ポリシーに関する情報を取得する方法については、拡張機能ポリシーを表示するをご覧ください。
拡張機能ポリシーによってインストールされた Ops エージェントを再起動する
Ops エージェントが VM Extension Manager によってインストールおよび管理されている場合、Ops エージェントはオペレーティング システムのシステム管理サービス(Linux の systemd または Windows の Windows サービス マネージャー)によって管理されません。そのため、Linux の systemctl コマンドと Windows の *-Service コマンドは、拡張機能ポリシーによってインストールされた Ops エージェントでは機能しません。
拡張機能ポリシーによってインストールされた Ops エージェントを再起動するには、次のいずれかを行います。
ポリシーを再作成する。
一時的な高優先度ポリシーを使用する。元のポリシーが多数の VM に影響するが、少数の VM でのみ Ops エージェントを再起動する場合は、それらの VM にラベルを追加し、ラベルでフィルタするように新しいポリシーを構成します。
たとえば、優先度 1000 のポリシーで VM での Ops エージェントの起動に失敗した場合は、
status=failedなどのラベルを VM に追加できます。次に、優先度の高い(500 など)新しいポリシーを作成します。たとえば、Google Cloud CLI コマンドは次のようになります。ゾーン
gcloud compute zone-vm-extension-policiescreatePOLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --extensions=ops-agent \ --inclusion-labels=status=failed \ --priority=500 \ --config-from-file=ops-agent=/usr/ops-agent-config.yamlコマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
- ZONE: ターゲット ゾーン(例:
us-central1-f)。
グローバル
gcloud compute global-vm-extension-policiescreatePOLICY_NAME \ --project=PROJECT_ID \ --extensions=ops-agent \ --inclusion-labels=status=failed \ --priority=500 \ --config-from-file=ops-agent=/usr/ops-agent-config.yaml \ --rollout-predefined-plan=fast_rolloutコマンドの次の変数を置き換えます。
- POLICY_NAME: VM 拡張機能ポリシーの名前。
- PROJECT_ID: プロジェクトの ID。
新しいポリシーによって Ops エージェントが正常にインストールされたら、ポリシーを削除して、VM からラベルを削除します。元のポリシーが引き続き有効であるため、Ops エージェントは VM にインストールされたままになります。
VM でゲスト エージェントのデバッグログを有効にする
VM Extension Manager ポリシーは、Compute Engine ゲスト エージェントを使用して、Ops エージェントを VM 拡張機能として管理します。ゲスト エージェントのデバッグ ロギングを有効にする方法については、ゲスト エージェントのデバッグログを表示するをご覧ください。
次のステップ
- 拡張機能ポリシーの問題のトラブルシューティング。
- Ops エージェントの構成に関する詳細情報を表示する。
- VM Extension Manager の詳細を確認する。