管理修補工作

建立修補作業後,您可以使用下列程序查看及管理修補程式:

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

事前準備

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    For more information, see Authenticate for using REST in the Google Cloud authentication documentation.

權限

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

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

列出修補工作

查看所有有效和已完成的工作清單。

主控台

  1. 在 Google Cloud 控制台中依序前往「Compute Engine」 >「VM Manager」 >「Patch」頁面。

    前往「Patch」頁面

  2. 選取「Patch Jobs」分頁標籤。

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 的修補工作,並以建立時間和升冪順序排序,請執行下列指令:

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 Manager」 >「Patch」頁面。

    前往「Patch」頁面

  2. 選取「Patch Jobs」分頁標籤。
  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 Manager」 >「Patch」頁面。

    前往「Patch」頁面

  2. 選取「Patch Jobs」分頁標籤。
  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 Config 代理程式會完成目前執行的子項工作,但不會繼續執行。子工作是指由代理程式執行且無法停止的工作。

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

主控台

  1. 在 Google Cloud 控制台中依序前往「Compute Engine」 >「VM Manager」 >「Patch」頁面。

    前往「Patch」頁面

    1. 選取「Patch Jobs」分頁標籤。
    2. 展開要取消的修補工作 「Actions」 選單。
    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。

後續步驟