作成時に 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 ポリシーの割り当てに関連付けられているかどうかを確認します。
コンソール
-
Google Cloud コンソールで、[OS ポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、サブ見出しが [Compute Engine] の結果を選択します。
[VM インスタンス] タブで、確認する VM を選択します。
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 を使用します。
コンソール
-
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
VM の名前を選択します。
[基本情報] パネルで、[ラベル] エントリを見つけます。
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 ポリシーの割り当てが特定のゾーンに正しくデプロイされていることを確認します。
コンソール
-
Google Cloud コンソールで、[OS ポリシー] ページに移動します。
検索バーを使用してこのページを検索する場合は、サブ見出しが [Compute Engine] の結果を選択します。
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 を使用します。
コンソール
-
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
編集する VM の名前を選択します。
[編集] をクリックします。
[ラベル] セクションに移動し、[+ ラベルを追加] をクリックします。
goog-ops-agent-policy
というキーが付いたラベルを見つけて、[項目を削除] をクリックします。
gcloud
VM から
goog-ops-agent-policy
というラベルを削除するには、次のコマンドを実行します。gcloud compute instances update VM_NAME \ --remove-labels=goog-ops-agent-policy
すべての 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
このスクリプトは、各ゾーンで次のタスクを実行します。
- Ops エージェントの OS ポリシーをすべて検索します。
- 各ポリシーを、対象となる VM で Ops エージェントをアンインストールするように編集します。
- Ops エージェントの OS ポリシーを削除します。
- 対象となる 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 を使用します。
コンソール
-
Google Cloud コンソールで、[VM インスタンス] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Compute Engine] の結果を選択します。
[VM インスタンス] リストで、ラベルを付ける VM の横にあるチェックボックスをオンにして、[ラベル] をクリックします。
ラベルを追加するには、[+ ラベルを追加] をクリックして Key-Value ペアを追加します。キーは
goog-ops-agent-policy
とする必要があり、値は目的のテンプレート バージョン(1-0-0
など)です。変更を保存します。
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'