VM Extension Manager のポリシーを使用して Ops エージェントを管理する

ポリシーによる 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 拡張機能ポリシーの表示、変更、削除に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

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 コンソールを使用します。

  1. Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。

    [拡張機能のポリシー] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。

  2. 更新するポリシーを選択します。
  3. [編集] をクリックします。
  4. [拡張機能を管理する] セクションで、次の操作を行います。
    1. [拡張機能] リストから、Google Cloud's Extension for Ops Agent を選択します。
    2. [バージョン] フィールドを変更します。バージョン 2.58.0 以降を使用します。
    3. [完了] をクリックします。
  5. [保存] をクリックします。

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 コンソールを使用します。

  1. Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。

    [拡張機能のポリシー] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。

  2. 更新するポリシーを選択します。
  3. [編集] をクリックします。
  4. [拡張機能を管理する] セクションで、次の操作を行います。
    1. [拡張機能] リストから、Google Cloud's Extension for Ops Agent を選択します。
    2. [構成ファイルの内容] フィールドに、Ops エージェントの YAML 構成文字列を入力します。
    3. [完了] をクリックします。
  5. [保存] をクリックします。

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 コマンドを使用して、ポリシーに基づいて保存されている構成を更新する必要があります。

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 はその時点でエージェントを削除します。

コンソール

  1. Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。

    [拡張機能のポリシー] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。

  2. 削除するポリシーをクリックします。
  3. [削除] をクリックします。
  4. 確認ダイアログで [削除] をクリックします。

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 プロジェクト内のすべてのポリシーのリスト。
  • 特定のポリシーに関する構成情報。

コンソール

  1. Google Cloud コンソールで、[拡張機能ポリシー] ページに移動します。

    [拡張機能のポリシー] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。

    このページには、プロジェクト内のすべての VM 拡張機能ポリシーが一覧表示されます。
  2. 特定の拡張機能ポリシーの詳細を表示するには、ポリシーの名前をクリックします。

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-policies list をご覧ください。

名前付き 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-policies list をご覧ください。

名前付きグローバル 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 エージェントを再起動するには、次のいずれかを行います。

  • ポリシーを再作成する。

    1. ポリシー削除します。ポリシーを削除すると、Ops エージェントが停止してアンインストールされます。

    2. 新しいポリシーを作成します。新しいポリシーは、Ops エージェントをインストールして起動します。

  • 一時的な高優先度ポリシーを使用する。元のポリシーが多数の VM に影響するが、少数の VM でのみ Ops エージェントを再起動する場合は、それらの VM にラベルを追加し、ラベルでフィルタするように新しいポリシーを構成します。

    たとえば、優先度 1000 のポリシーで VM での Ops エージェントの起動に失敗した場合は、status=failed などのラベルを VM に追加できます。次に、優先度の高い(500 など)新しいポリシーを作成します。たとえば、Google Cloud CLI コマンドは次のようになります。

    ゾーン

    gcloud compute zone-vm-extension-policies create POLICY_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-policies create POLICY_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 拡張機能として管理します。ゲスト エージェントのデバッグ ロギングを有効にする方法については、ゲスト エージェントのデバッグログを表示するをご覧ください。

次のステップ