使用 VM 擴充功能管理工具政策管理 Ops Agent

您可以更新政策,變更政策管理 Ops Agent 的方式。更新政策時,VM 擴充功能管理工具會將變更推送至所有適用的 VM,通常一分鐘內就會完成。視政策變更方式而定,Ops Agent 可能會安裝在新 VM 上,或從現有 VM 解除安裝。

事前準備

開始使用 VM 擴充功能管理工具擴充功能政策前,請先完成下列步驟:

  • 授予管理 VM 擴充功能管理工具政策所需的角色。

  • 如要使用指令列介面建立及管理擴充功能政策,但尚未安裝 Google Cloud CLI,請安裝 gcloud。

    您可以使用Google Cloud 控制台或 Google Cloud CLI (gcloud),建立及管理可用區 VM 擴充功能政策。您可以使用 gcloud 建立及管理全域 VM 擴充功能政策。

授予管理 VM 擴充功能管理工具政策所需的角色

如要取得查看、修改及刪除 VM 擴充功能政策所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備查看、修改及刪除 VM 擴充功能政策所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

必須具備下列權限,才能查看、修改及刪除 VM 擴充功能政策:

  • 如要查看擴充功能政策,請按照下列步驟操作: compute.vmExtensionPolicies.list
  • 查看擴充功能政策詳細資料: compute.vmExtensionPolicies.get
  • 如要修改擴充功能政策,請按照下列步驟操作: compute.vmExtensionPolicies.update
  • 如要刪除擴充功能政策: compute.vmExtensionPolicies.delete

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

如要進一步瞭解 Compute Engine 的 IAM 角色和權限,請參閱「Compute Engine 角色和權限」。

修改管理 Ops Agent 的擴充功能政策

如要變更政策管理 Ops Agent 的方式,請更新政策。更新政策時,VM 擴充功能管理工具會將變更推送至所有適用的 VM,通常一分鐘內就會完成。如果修改納入標籤,系統可能會根據 VM 是否符合更新後的標籤,在新的 VM 上安裝 Ops Agent,或從現有的 VM 解除安裝 Ops Agent。

以下各節說明如何變更政策,以執行下列操作:

更新可用區內所有 VM 的 Ops Agent 固定版本

如要變更可用區中所有 VM 的 Ops Agent 固定版本,請按照下列步驟操作:

控制台

如要建立可用區政策,可以使用 Google Cloud 控制台。

  1. 前往 Google Cloud 控制台的「Extension policies」(擴充功能政策) 頁面:

    前往「Extension policies」(擴充功能政策)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。

  2. 選取要更新的政策。
  3. 按一下 [編輯]。
  4. 在「Manage extensions」(管理擴充功能) 部分,執行下列操作:
    1. 從「Extension」(擴充功能) 清單中選取 Google Cloud's Extension for Ops Agent。
    2. 修改「Version」欄位。請使用 2.58.0 以上版本。
    3. 按一下「完成」。
  5. 按一下 [儲存]。

gcloud

如要建立可用區或全域政策,請使用 gcloud CLI。

區域

使用 gcloud compute zone-vm-extension-policies update 指令,並加上 --version 選項,即可修改固定的代理程式版本。

使用 gcloud 更新政策時,要求會完全取代現有政策。因此,您在要求中省略的任何選填欄位都會還原為預設值,而不是保留修改後政策的現有值。

如要透過政策變更可用區中所有 VM 安裝的 Ops Agent 版本,請使用下列指令:

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 Agent 版本。使用 2.58.0 以上版本。 如要查看版本清單,請前往 GitHub 的 Ops Agent 版本頁面。

    如果省略 --version 選項,政策就會安裝最新版本,並在新版本發布時更新 Ops Agent,如安裝最新版本的範例所示。

全球

使用 gcloud compute global-vm-extension-policies update 指令,並加上 --version 選項,即可修改固定的代理程式版本。

使用 gcloud 更新政策時,要求會完全取代現有政策。因此,您在要求中省略的任何選填欄位都會還原為預設值,而不是保留修改後政策的現有值。

如要變更全域政策在所有 VM 上安裝的 Ops Agent 版本,請使用下列指令:

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 Agent 版本。使用 2.58.0 以上版本。 如要查看版本清單,請前往 GitHub 的 Ops Agent 版本頁面。

    如果省略 --version 選項,政策就會安裝最新版本,並在新版本發布時更新 Ops Agent,如安裝最新版本的範例所示。

修改所有 VM 的 Ops Agent 設定

如要修改 Ops Agent 的設定,請按照下列步驟操作:

控制台

如要建立可用區政策,可以使用 Google Cloud 控制台。

  1. 前往 Google Cloud 控制台的「Extension policies」(擴充功能政策) 頁面:

    前往「Extension policies」(擴充功能政策)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。

  2. 選取要更新的政策。
  3. 按一下 [編輯]。
  4. 在「Manage extensions」(管理擴充功能) 部分,執行下列操作:
    1. 從「Extension」(擴充功能) 清單中選取 Google Cloud's Extension for Ops Agent。
    2. 在「Config file content」(設定檔內容) 欄位中,輸入 Ops Agent 的 YAML 設定字串。
    3. 按一下「完成」。
  5. 按一下 [儲存]。

gcloud

如要建立可用區或全域政策,請使用 gcloud CLI。

區域

使用 gcloud compute zone-vm-extension-policies update 指令,並加上 --config-from-file 選項或 --config 選項,指定新的設定。

使用 gcloud 更新政策時,要求會完全取代現有政策。因此,您在要求中省略的任何選填欄位都會還原為預設值,而不是保留修改後政策的現有值。

如要透過政策變更可用區中所有 VM 上安裝的 Ops Agent 設定,請使用下列指令:

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 Agent 的 YAML 設定字串。這個檔案必須存在於您執行 gcloud 指令的環境中。

    Ops Agent 的設定 YAML 可能很長。將設定放入檔案並傳遞至 gcloud CLI,比嘗試在指令列中輸入格式正確的 YAML 更不容易出錯。

全球

使用 gcloud compute global-vm-extension-policies update 指令,並加上 --config-from-file 選項或 --config 選項,指定新的設定。

使用 gcloud 更新政策時,要求會完全取代現有政策。因此,您在要求中省略的任何選填欄位都會還原為預設值,而不是保留修改後政策的現有值。

如要變更政策在所有 VM 上安裝的 Ops Agent 設定,請使用下列指令:

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 Agent 的 YAML 設定字串。這個檔案必須存在於您執行 gcloud 指令的環境中。

    Ops Agent 的設定 YAML 可能很長。將設定放入檔案並傳遞至 gcloud CLI,比嘗試在指令列中輸入格式正確的 YAML 更不容易出錯。

如果您在建立或更新擴充功能政策時,為 Ops Agent 提供自訂設定,則政策會使用自訂設定部署 Ops Agent。您不必手動重新啟動代理。

設定會與擴充功能政策一併儲存,因此請勿在設定中加入密碼等機密資料。由於設定會與擴充功能政策一併儲存,因此修改設定檔不會變更代理程式的設定。您必須使用適當的 gcloud 指令,更新政策儲存的設定:

為 Ops Agent 提供自訂設定時,VM 擴充功能管理工具會將設定複製到目標 VM 上 Ops Agent 用於 使用者指定設定檔的位置:

  • 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 擴充功能管理工具不會自動將政策套用至新可用區中的 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:用於識別重試要求的通用唯一 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:用於識別重試要求的通用唯一 ID (UUID)。您可以使用任何 UUID 產生器建立 UUID。詳情請參閱「 重試推出作業 」。

刪除 VM 擴充功能政策,解除安裝 Ops Agent

如要解除安裝 Ops Agent,請刪除管理代理程式的 VM 擴充功能政策。如果 VM 適用另一項優先順序較低、同樣管理 Ops Agent 的有效政策,則代理程式會根據該政策,繼續安裝在該 VM 上。

刪除政策後,VM 擴充功能管理工具會在一分鐘內,從所有可存取的 VM 中移除 Ops Agent。如果無法存取 VM,VM 擴充功能管理工具會略過刪除代理程式。如果 VM 恢復可用狀態,VM 擴充功能管理工具就會移除代理程式。

控制台

  1. 前往 Google Cloud 控制台的「Extension policies」(擴充功能政策) 頁面:

    前往「Extension policies」(擴充功能政策)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。

  2. 選取要刪除的政策。
  3. 點選「刪除」。
  4. 在確認對話方塊中點按「刪除」。

gcloud

區域

如要刪除管理 Ops Agent 的 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 Agent 的全域 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:用於識別重試要求的通用唯一 ID (UUID)。您可以使用任何 UUID 產生器建立 UUID。詳情請參閱「 重試推出作業 」。

擷取 VM 擴充功能政策的相關資訊

您可以擷取現有 VM 擴充功能政策的下列資訊:

  • Google Cloud 專案中的所有政策清單。
  • 特定政策的設定資訊。

控制台

  1. 前往 Google Cloud 控制台的「Extension policies」(擴充功能政策) 頁面:

    前往「Extension policies」(擴充功能政策)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「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

請替換指令中的下列變數:

說明已命名的全域 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 Agent

如果 Ops Agent 是由 VM 擴充功能管理工具安裝及管理,則不會由作業系統的系統管理服務管理,也就是 Linux 上的 systemd 或 Windows 上的 Windows 服務管理員。因此,Linux systemctl 指令和 Windows *-Service 指令不適用於透過擴充功能政策安裝的 Ops Agent。

如要重新啟動透過擴充功能政策安裝的 Ops Agent,請執行下列任一操作:

  • 重新建立政策。

    1. 刪除政策。刪除政策後,系統會停止並解除安裝 Ops Agent。

    2. 建立新政策。新政策會安裝並啟動 Ops Agent。

  • 使用優先順序較高的臨時政策。如果原始政策影響大量 VM,但您只想重新啟動少數 VM 上的 Ops Agent,請為這些 VM 新增標籤,並設定新政策來篩選標籤。

    舉例來說,如果優先順序為 1000 的政策無法在 VM 上啟動 Ops Agent,您可以將 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 Agent 後,請刪除政策並移除 VM 的標籤。由於原始政策仍有效,Ops Agent 仍會安裝在 VM 上。

在 VM 上啟用訪客代理程式偵錯記錄檔

VM 擴充功能管理工具政策會使用 Compute Engine 訪客代理程式,將 Ops Agent 做為 VM 擴充功能管理。如要瞭解如何啟用訪客代理程式的偵錯記錄檔,請參閱「查看訪客代理程式的偵錯記錄檔」。

後續步驟