Ops エージェントの OS ポリシーの対象となる VM を管理する

作成時に Ops エージェントがインストールされている Compute Engine VM を作成した場合、または Google Cloud コンソールを使用して既存の VM にエージェントをインストールした場合、Ops エージェントをインストールしてモニタリングする VM Manager OS ポリシーも作成されています。このドキュメントでは、これらの Ops エージェントの OS ポリシーをクエリして、そのポリシーの対象となる VM で Ops エージェントを管理する方法について説明します。Ops エージェントが自動的にインストールされる VM の作成方法については、VM 作成時に Ops エージェントをインストールするをご覧ください。

Ops エージェントの OS ポリシーを作成すると、次のことが可能になります。

  • ポリシーの対象となる VM を特定する。
  • ポリシーの対象となるゾーンを特定する。
  • ポリシー カバレッジを既存の VM に拡張する。
  • ポリシーの対象となる VM からエージェントをアンインストールする。

Ops エージェントの OS ポリシーの対象となる VM を検出する

Google Cloud コンソールまたは Google Cloud CLI を使用して、OS ポリシーの割り当てによって Ops エージェントの OS ポリシーの対象となる Google Cloud プロジェクト内の VM を確認できます。VM にカバレッジがないと思われる場合は、次の手順でトラブルシューティングを行うことができます。

Ops エージェントの OS ポリシーがゾーン内の VM に割り当てられていることを確認する

ゾーン内の VM が Ops エージェントの OS ポリシーの対象であることを確認するには、Google Cloud コンソールまたは gcloud CLI を使用して、VM が Ops エージェントの OS ポリシーの割り当てに関連付けられているかどうかを確認します。

コンソール

  1. Google Cloud コンソールのナビゲーション パネルで、[Compute Engine] を選択してから、[OS ポリシー] を選択します。

    [OS ポリシー] に移動

  2. [VM インスタンス] タブで、確認する VM を選択します。

  3. VM が Ops エージェントの OS ポリシーの対象である場合は、[OS ポリシー ID] 列に goog-ops-agent-policy が表示され、状態が「準拠」になります。

gcloud

ゾーン内にある Ops エージェントの OS ポリシーの割り当てを一覧表示するには、次のコマンドを実行します。

gcloud compute os-config os-policy-assignment-reports list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

出力には、Ops エージェントの OS ポリシーの割り当てがある VM のリストが表示されます。Ops エージェントが VM にインストールされている場合、[概要] 列の値は「1 件中 1 件のポリシーを遵守」になります。

INSTANCE    ASSIGNMENT_ID                                    LOCATION    UPDATE_TIME                  SUMMARY
instance-1  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant
instance-3  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant

VM に Ops エージェントの OS ポリシーのラベルがあることを確認する

Ops エージェントの OS ポリシーのラベル goog-ops-agent-policy がある Google Cloud プロジェクトの VM を確認するには、Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

  1. Google Cloud コンソールのナビゲーション パネルで、[Compute Engine] を選択してから、[VM インスタンス] を選択します。

    [VM インスタンス] に移動

  2. VM の名前を選択します。

  3. [基本情報] パネルで、[ラベル] エントリを見つけます。

    VM が Ops エージェントの OS ポリシーの対象となっている場合は、VM には goog-ops-agent-policy:v2-x86-template-1-0-0 のようなラベルが付けられています。

gcloud

Ops エージェントの OS ポリシーのラベル goog-ops-agent-policy が付けられた VM をすべて表示するには、次のコマンドを実行します。

gcloud compute instances list --format="table(name,zone,labels)" --filter="labels=goog-ops-agent-policy"

出力には、VM の名前、ゾーン、ラベルが含まれます。次に例を示します。

NAME                  ZONE           LABELS
test-vm1              us-central1-a  {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}
test-vm1              us-east4-c     {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}

特定の VM に Ops エージェントの OS ポリシーのラベルが付けられているかどうかを確認するには、次のコマンドを実行します。

gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME

出力には、VM のラベルのリストが含まれます。VM に Ops エージェントの OS ポリシーのラベルが付いている場合は、labels リストに goog-ops-agent-policy が表示されます。次に例を示します。

labels:
  goog-ops-agent-policy: v2-x86-template-1-0-0

Ops エージェントの OS ポリシーの割り当てが正常にロールアウトされたことを確認する

Google Cloud プロジェクトの OS ポリシーの割り当てを表示して、Ops エージェントの OS ポリシーの割り当てが特定のゾーンに正しくデプロイされていることを確認します。

コンソール

  1. Google Cloud コンソールのナビゲーション パネルで、[Compute Engine] を選択してから、[OS ポリシー] を選択します。

    [OS ポリシー] に移動

  2. OS ポリシーのロールアウトの状態を確認するには、[OS ポリシーの割り当て] タブをクリックします。

    Ops エージェントの OS ポリシーの割り当てには、「goog-ops-agent」という文字列で始まる ID があります。割り当てが正常にロールアウトされた場合は、ロールアウトの状態は「成功」になります。

gcloud

ゾーン内にある Ops エージェントの OS ポリシーの割り当てをすべて表示するには、次のコマンドを実行します。

gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

出力には、ゾーン内にある Ops エージェントの OS ポリシーの割り当てのリストが含まれます。割り当てが正常にロールアウトされた場合は、ロールアウトの状態は「成功」になります。次に例を示します。

ASSIGNMENT_ID                                       ROLLOUT_STATE    REVISION_CREATE_TIME       REVISION_ID
goog-ops-agent-v2-x86-template-1-4-0-us-central1-b  SUCCEEDED        2023-01-28T05:23:41Z.      940df3e9-77fd-470b-84df-53fb24825c4a
goog-ops-agent-v2-x86-template-1-0-0-us-central1-b  SUCCEEDED        2022-01-28T05:23:41Z.      qwareaff-efte-erew-aeet-faer234t4gga

特定の Ops エージェントの OS ポリシーの割り当てについて詳細を表示するには、次のコマンドを実行します。

gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE

Ops エージェントの OS ポリシーの対象となる VM で Ops エージェントをアンインストールする

Ops エージェントの OS ポリシーの対象となる VM で手動で Ops エージェントをアンインストールすると、ポリシーによってエージェントが再インストールされます。Ops エージェントをアンインストールするには、まず VM から goog-ops-agent-policy ラベルを削除する必要があります。Ops エージェントの OS ポリシーのラベルを VM から削除すると、Ops エージェントを完全にアンインストールできます。

特定の VM で Ops エージェントをアンインストールする

ポリシーを削除して、特定の VM から Ops エージェントをアンインストールするには、Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

  1. Google Cloud コンソールのナビゲーション パネルで、[Compute Engine] を選択してから、[VM インスタンス] を選択します。

    [VM インスタンス] に移動

  2. 編集する VM の名前を選択します。

  3. [編集] をクリックします。

  4. [ラベル] セクションに移動し、[+ ラベルを追加] をクリックします。

  5. goog-ops-agent-policy というキーが付いたラベルを見つけて、[項目を削除] をクリックします。

  6. エージェントをアンインストールします

gcloud

  1. VM から goog-ops-agent-policy というラベルを削除するには、次のコマンドを実行します。

    gcloud compute instances update VM_NAME \
      --remove-labels=goog-ops-agent-policy
    
  2. エージェントをアンインストールします

すべての VM から Ops エージェントをアンインストールする

Ops エージェントの OS ポリシーが割り当てられているゾーンの VM から Ops エージェントをアンインストールするには、Cloud Monitoring によって提供されるスクリプトを使用します。Google Cloud コンソールを使用して VM のグループからエージェントをアンインストールすることはできません。

スクリプトを実行するには、GuestPolicy 編集者のロールroles/osconfig.guestPolicyEditor)が必要です。

Cloud Shell で次のスクリプトを実行します。任意の数のゾーンを指定できます。

curl -sSO https://dl.google.com/cloudagents/undo-ops-agent-policies.sh
bash undo-ops-agent-policies.sh ZONE1 ZONE2

このスクリプトは、各ゾーンで次のタスクを実行します。

  1. Ops エージェントの OS ポリシーをすべて検索します。
  2. 対象となる VM で Ops エージェントをアンインストールするように、各ポリシーを編集します。
  3. Ops エージェントの OS ポリシーを削除します。
  4. 対象となる VM からそれぞれ goog-ops-agent-policy ラベルを削除します。

Ops エージェントの OS ポリシーのカバレッジを既存の VM に追加する

Ops エージェントの OS ポリシーは、goog-ops-agent-policy というラベルがあり、既存の Ops エージェント OS ポリシーの割り当てと同じゾーンに存在する VM のみを対象とします。ただし、Ops エージェントの OS ポリシーが割り当てられていない状態で作成された他の VM にもカバレッジを拡張できます。

ポリシーのカバレッジを VM に拡張する場合は、ゾーン内にある Ops エージェントの OS ポリシーの割り当てでテンプレートのバージョンを確認しておく必要があります。ゾーンに Ops エージェントの OS ポリシーの割り当てが複数ある場合は、最新のテンプレート バージョンを含む割り当てを確認します。ゾーン内にある Ops エージェントの OS ポリシーの割り当てを一覧表示するには、次のコマンドを実行します。

gcloud compute os-config os-policy-assignments list --location=ZONE
  --filter="ASSIGNMENT_ID ~ goog-ops-agent"

ポリシーのカバレッジを他の VM に拡張するには、Google Cloud コンソールまたは gcloud CLI を使用します。

コンソール

  1. Google Cloud コンソールのナビゲーション パネルで、[Compute Engine] を選択してから、[VM インスタンス] を選択します。

    [VM インスタンス] に移動

  2. [VM インスタンス] リストで、ラベルを付ける VM の横にあるチェックボックスをオンにして、[ラベル] をクリックします。

  3. ラベルを追加するには、[+ ラベルを追加] をクリックして Key-Value ペアを追加します。キーは goog-ops-agent-policy にします。値は、目的のテンプレート バージョン(1-0-0 など)にします。

  4. 変更を保存します。

gcloud

カバレッジのない VM にポリシー カバレッジを拡張するには、次のコマンドを実行します。

gcloud compute instances update VM_NAME --zone=ZONE
  --update-labels=goog-ops-agent-policy:v2-x86-template-1-0-0
gcloud compute instances add-metadata VM_NAME --zone=ZONE
  --metadata=enable-osconfig=TRUE

権限

Ops エージェントのインストールでは VM Manager を使用します。また、VM Manager API を有効にしてポリシーを作成する権限が必要です。すべての必要な権限は、編集者ロールroles/Editor)によって付与できます。また、Google Cloud CLI を使用して、最小限の権限を付与するようにプロジェクト管理者に依頼することもできます。

VM 作成時に Ops エージェントをインストールするために必要な権限:

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectBillingConfigs.update
  • compute.instances.create

既存の VM に Ops エージェントをインストールするために必要な権限:

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectBillingConfigs.update
  • compute.instances.setMetadata
  • compute.instances.setLabels

これらの権限を提供する対応するロールは、osconfig.projectBillingConfigs.update 権限を除いて、IAM の基本ロールと事前定義ロールのリファレンスで確認できます。この権限は、osconfig.projectBillingConfig のロールに含まれています。このロールは Google Cloud コンソールでは利用できませんが、gcloud CLI を使用して付与できます。

権限のロールを付与するコマンドの例:

gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectBillingConfigEditor'