如果您在建立 Compute Engine VM 時安裝了 Ops Agent,或在某些情況下使用 Google Cloud 控制台在現有 VM 上安裝代理程式,則 Google Cloud 也會建立 VM 管理員 OS 政策,安裝及監控 Ops Agent。本文說明如何查詢這些 Ops Agent OS 政策,以及管理政策涵蓋的 VM 上的 Ops Agent。如要瞭解如何建立 VM 並自動安裝 Ops Agent,請參閱「在建立 VM 時安裝 Ops Agent」。
建立作業套件代理程式 OS 政策後,您可以執行下列作業:
- 判斷政策涵蓋哪些 VM。
- 決定政策涵蓋的區域。
- 將政策涵蓋範圍擴展至現有 VM。
- 從政策涵蓋的 VM 解除安裝代理程式。
找出作業套件代理程式 OS 政策涵蓋的 VM
您可以使用 Google Cloud 控制台或 Google Cloud CLI,查看 Google Cloud 專案中哪些 VM 透過 OS 政策指派作業套用 Ops Agent OS 政策。如果認為 VM 缺少涵蓋範圍,可以按照下列步驟排解問題:
確認作業套件代理程式 OS 政策已指派給可用區中的 VM
如要確認可用區中的 VM 是否適用 Ops Agent OS 政策,請使用 Google Cloud 控制台或 gcloud CLI,查看 VM 是否與 Ops Agent OS 政策指派作業相關聯。
控制台
-
前往 Google Cloud 控制台的「OS policies」(作業系統政策) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。
在「VM instances」(VM 執行個體) 分頁中,選取要檢查的 VM。
如果 VM 適用於作業套件代理程式 OS 政策,則「OS 政策 ID」欄會包含
goog-ops-agent-policy,且狀態為「符合規定」。
gcloud
如要在區域中顯示 Ops Agent OS 政策指派清單,請執行下列指令:
gcloud compute os-config os-policy-assignment-reports list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"
輸出內容會顯示 VM 清單,其中包含作業套件代理程式 OS 政策指派項目。如果 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 Agent OS 政策標籤
如要查看 Google Cloud 專案中哪些 VM 具有 Ops Agent OS 政策標籤 goog-ops-agent-policy,請使用 Google Cloud 控制台或 gcloud CLI。
控制台
-
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。
選取 VM 名稱。
在「基本資訊」面板中,找出「標籤」項目。
如果 VM 適用於 Ops Agent OS 政策,則會顯示類似
goog-ops-agent-policy:v2-x86-template-1-0-0的標籤。
gcloud
如要查看所有具有 Ops Agent 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 Agent OS 政策標籤,請執行下列指令:
gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME
輸出內容會顯示 VM 的標籤清單。如果 VM 具有作業套件代理程式 OS 政策標籤,goog-ops-agent-policy就會顯示在 labels 清單中。例如:
labels: goog-ops-agent-policy: v2-x86-template-1-0-0
確認 Ops Agent OS 政策指派作業已順利推出
查看 Google Cloud 專案 OS 政策指派作業,確認作業套件代理程式 OS 政策指派作業已正確部署至特定可用區。
控制台
-
前往 Google Cloud 控制台的「OS policies」(作業系統政策) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。
如要查看 OS 政策推出狀態,請按一下「OS 政策指派作業」分頁標籤。
Ops Agent OS 政策指派作業的 ID 開頭為「goog-ops-agent」。如果指派作業順利推出,推出狀態會顯示「成功」。
gcloud
如要查看可用區中的所有 Ops Agent OS 政策指派事項,請執行下列指令:
gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"
輸出內容會顯示可用區中的 Ops Agent OS 政策指派作業清單。 如果指派作業順利推出,推出狀態會顯示「SUCCEEDED」。例如:
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 Agent OS 政策指派作業的詳細資料,請執行下列指令:
gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE
解除安裝作業套件代理程式 OS 政策涵蓋的 VM 作業套件代理程式
如果您在作業套件代理程式 OS 政策涵蓋的 VM 上手動解除安裝作業套件代理程式,該政策就會重新安裝。如要解除安裝 Ops Agent,請先從 VM 移除 goog-ops-agent-policy 標籤。從 VM 移除作業套件代理程式 OS 政策標籤後,即可永久解除安裝作業套件代理程式。
解除安裝特定 VM 的作業套件代理程式
如要移除政策並從特定 VM 解除安裝 Ops Agent,可以使用 Google Cloud 主控台或 gcloud CLI。
控制台
-
前往 Google Cloud 控制台的「VM instances」(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 中解除安裝作業套件代理程式
如要從已指派作業套件代理程式 OS 政策的可用區中解除安裝 VM 的作業套件代理程式,請使用 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
指令碼會在每個區域執行下列工作:
- 找出所有作業套件代理程式 OS 政策。
- 編輯每項政策,在涵蓋的 VM 上解除安裝作業套件代理程式。
- 刪除作業套件代理程式 OS 政策。
- 從每個涵蓋的 VM 移除「
goog-ops-agent-policy」標籤。
為現有 VM 新增作業套件代理程式 OS 政策涵蓋範圍
作業套件代理程式 OS 政策只涵蓋具有 goog-ops-agent-policy 標籤的 VM,且這些 VM 與現有的作業套件代理程式 OS 政策指派項目位於同一可用區。不過,您可以將涵蓋範圍擴展至其他 VM,這些 VM 是在未指派 Ops Agent OS 政策的情況下建立。
如要將政策涵蓋範圍擴展至 VM,您需要知道可用區中 Ops Agent OS 政策指派作業的範本版本。如果專區有多項 Ops Agent OS 政策指派作業,請找出最新範本版本的指派作業。如要顯示區域中的 Ops Agent 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 instances」(VM 執行個體) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。
在「VM instances」(VM 執行個體) 清單中,選取要加上標籤的 VM 旁邊的核取方塊,然後按一下「Labels」(標籤)。
如要新增標籤,請按一下「+新增標籤」,然後新增鍵/值組合。 鍵必須為
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
權限
安裝作業套件代理程式時會使用 VM 管理員,並需要權限來啟用 VM Manager API 及建立政策。「編輯者」角色 (roles/Editor) 具備所有必要權限。您也能請專案管理員透過 Google Cloud CLI 授予最低權限。
在建立 VM 時安裝作業套件代理程式所需的權限:
serviceusage.services.getserviceusage.services.enableosconfig.osPolicyAssignments.getosconfig.osPolicyAssignments.createosconfig.projectFeatureSettings.updatecompute.instances.create
在現有 VM 中安裝作業套件代理程式所需的權限:
serviceusage.services.getserviceusage.services.enableosconfig.osPolicyAssignments.getosconfig.osPolicyAssignments.createosconfig.projectFeatureSettings.updatecompute.instances.setMetadatacompute.instances.setLabels
如要瞭解提供這些權限的對應角色,請參閱 IAM 基本與預先定義角色參考資料。
授予權限角色的指令範例:
gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectFeatureSettingsEditor'