管理修補工作

建立修補工作後,您可以按照下列程序查看及管理修補程式:

您可以使用Google Cloud 控制台Google Cloud CLIREST 管理修補程式工作。

事前準備

  • 查看 OS 設定配額
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

權限

專案擁有者有完整存取權,可執行及管理修補程式作業。 如要讓其他使用者存取,您必須授予權限。您可以授予下列其中一個精細角色:

  • roles/osconfig.patchJobExecutor:包含執行、取消、取得及列出修補工作的權限。此外,也包含查看修補工作執行個體詳細資料的權限。
  • roles/osconfig.patchJobViewer:包含可取得及列出修補程式作業的唯讀存取權。此外,也包含查看修補工作執行個體詳細資料的權限。

列出修補工作

查看所有執行中和已完成的工作清單。

主控台

  1. 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。

    前往「Patch」(修補程式) 頁面

  2. 選取「修補程式作業」分頁標籤。

gcloud

使用 os-config patch-jobs list 指令列出修補程式工作。

gcloud compute os-config patch-jobs list

如果是 Google Cloud CLI,預設輸出內容會傳回最近 10 項修補程式工作,無論這些工作是否已完成或仍在執行中。您可以使用 --limit 旗標覆寫這項設定。

輸出結果會與下列內容相似:

ID                                          NAME    DESCRIPTION               CREATE_TIME               UPDATE_TIME               STATE                  TARGETED_INSTANCES
23b0815e-1c94-4dc6-91b1-30a6da395cb9                                          2019-11-05T20:22:54.150Z  2019-11-06T19:40:08.641Z  COMPLETED_WITH_ERRORS  4
4116ad72-bd57-4e48-94dc-7a577dc707b6                                          2019-08-23T20:36:03.068Z  2019-08-23T20:36:15.984Z  CANCELED               2
06856cbe-9a7b-498e-9105-9ae4eb566511                                          2019-08-12T20:27:38.410Z  2019-08-12T20:28:37.583Z  SUCCEEDED              1
04a15964-9eaa-4282-96f5-9cd535352cf6                                          2019-08-12T17:48:22.938Z  2019-08-12T17:48:42.274Z  SUCCEEDED              0
21dc1e06-deee-4e3a-821e-8082a32abde5                testing patch job reboot  2019-07-24T22:45:07.451Z  2019-07-25T00:44:44.459Z  TIMED_OUT              1

您可以使用更多標記來篩選、排序及設定搜尋結果格式。 舉例來說,如要篩選上述輸出內容,只列出狀態為 SUCCEEDED 的修補程式工作 URI,並依建立時間升序排序,請執行下列指令:

gcloud compute os-config patch-jobs list \
   --filter="state=SUCCEEDED" \
   --sort-by="create_time" --uri

輸出結果會與下列內容相似:

https://osconfig.googleapis.com/v1/projects/1234567/patchJobs/04a15964-9eaa-4282-96f5-9cd535352cf6
https://osconfig.googleapis.com/v1/projects/1234567/patchJobs/06856cbe-9a7b-498e-9105-9ae4eb566511

如需完整旗標清單,請參閱 os-config patch-jobs list 指令。

REST

在 API 中,建立目標為 patchJobs.list 方法的 GET 要求。將 project-id 替換為專案 ID。

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs

列出特定修補工作的 VM 執行個體詳細資料

如要查看使用 OS 修補程式管理服務的完整 VM 執行個體清單,請查看修補工作狀態。

主控台

  1. 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。

    前往「Patch」(修補程式) 頁面

  2. 選取「修補程式作業」分頁標籤。
  3. 按一下要查看的修補工作名稱。
  4. 向下捲動至「已更新的 VM 執行個體」

gcloud

使用 os-config patch-jobs list-instance-details 指令列出特定修補工作中的所有 VM 的詳細資料。將 patch-job-id 替換為修補工作的 ID。

gcloud compute os-config patch-jobs list-instance-details patch-job-id

舉例來說,如要查看修補工作 23b0815e-1c94-4dc6-91b1-30a6da395cb9 中所有執行個體的詳細資料,請執行下列指令:

gcloud compute os-config patch-jobs list-instance-details 23b0815e-1c94-4dc6-91b1-30a6da395cb9

輸出結果會與下列內容相似:

NAME                        ZONE           STATE      FAILURE_REASON
instance-1                  us-central1-a  SUCCEEDED
guest-policy-test-instance  us-east1-c     TIMED_OUT  Instance timed out while in state: APPLYING_PATCHES after PT1H2.225S
my-centos                   us-west1-b     SUCCEEDED
my-windows                  us-west1-b     FAILED     Error running pre-patch step: fork/exec /tmp/pre_patch_script.sh: no such file ..."

您可以使用更多標記來篩選、排序及設定搜尋結果格式。 舉例來說,如要列出所有非使用中 VM 的詳細資料,並依執行個體名稱降序排序,請執行下列指令。將 patch-job-id 替換為修補工作的 ID。

gcloud compute os-config patch-jobs list-instance-details patch-job-id \
   --filter="state=INACTIVE" \
   --sort-by="~name"

如需完整旗標清單,請參閱 os-config patch-jobs list-instance-details 指令。

REST

在 API 中建立目標為 patchJobs.instanceDetails 方法的 GET 要求。

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id/instanceDetails

更改下列內容:

  • project-id:專案 ID。
  • patch-job-id:修補工作 ID。

說明修補工作

查看修補工作的詳細資訊。

主控台

  1. 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。

    前往「Patch」(修補程式) 頁面

  2. 選取「修補程式作業」分頁標籤。
  3. 按一下要查看的修補工作名稱。
  4. 查看「更新資訊」部分。

gcloud

使用 os-config patch-jobs describe 指令說明修補工作。將 patch-job-id 替換為修補工作的 ID。

gcloud compute os-config patch-jobs describe patch-job-id

舉例來說,如要查看修補工作 23b0815e-1c94-4dc6-91b1-30a6da395cb9 的相關資訊,請執行下列指令:

gcloud compute os-config patch-jobs describe 23b0815e-1c94-4dc6-91b1-30a6da395cb9

輸出結果會與下列內容相似:

createTime: '2019-11-05T20:22:54.150Z'
errorMessage: Completed with 2 instance failure(s).
filter: id=*
instanceDetailsSummary:
  instancesFailed: '1'
  instancesSucceeded: '2'
  instancesTimedOut: '1'
instanceFilter: {}
name: projects/1234567/patchJobs/23b0815e-1c94-4dc6-91b1-30a6da395cb9
patchConfig: {}
percentComplete: 100.0
state: COMPLETED_WITH_ERRORS
updateTime: '2019-11-06T19:40:08.641Z'

REST

在 API 中,建立目標為 patchJobs.get 方法的 GET 要求。

GET https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id

更改下列內容:

  • project-id:專案 ID。
  • patch-job-id:修補工作 ID。

取消修補工作

取消修補工作時,OS 設定代理程式會完成目前執行的子工作,但不會繼續執行後續工作。子工作是指代理程式執行的工作,無法停止。

舉例來說,如果 VM 執行個體重新啟動時修補工作遭到取消,重新啟動 (以及任何可能在重新啟動後自動執行的修補作業) 仍會完成,但代理程式不會為該修補工作啟動其他工作。

主控台

  1. 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。

    前往「Patch」(修補程式) 頁面

    1. 選取「修補程式作業」分頁標籤。
    2. 展開要取消的修補工作「動作」選單。
    3. 選取「取消」

gcloud

使用 os-config patch-jobs cancel 指令取消修補工作。將 patch-job-id 替換為修補工作的 ID。

gcloud compute os-config patch-jobs cancel patch-job-id

REST

在 API 中,建立目標為 patchJobs.cancel 方法的 POST 要求。

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs/patch-job-id:cancel

更改下列內容:

  • project-id:專案 ID。
  • patch-job-id:修補工作 ID。

後續步驟