建立修補工作後,您可以按照下列程序查看及管理修補程式:
- 列出修補工作:查看所有有效和已完成的工作清單。
- 列出 VM 執行個體詳細資料:查看 VM 執行個體的修補程式狀態。
- 說明修補工作:取得特定修補工作的詳細資料。
- 取消修補工作:取消特定修補工作。
您可以使用Google Cloud 控制台、Google Cloud CLI 或 REST 管理修補程式工作。
事前準備
- 查看 OS 設定配額。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 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:包含可取得及列出修補程式作業的唯讀存取權。此外,也包含查看修補工作執行個體詳細資料的權限。
列出修補工作
查看所有執行中和已完成的工作清單。
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。
- 選取「修補程式作業」分頁標籤。
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 執行個體清單,請查看修補工作狀態。
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。
- 選取「修補程式作業」分頁標籤。
- 按一下要查看的修補工作名稱。
- 向下捲動至「已更新的 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。
說明修補工作
查看修補工作的詳細資訊。
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。
- 選取「修補程式作業」分頁標籤。
- 按一下要查看的修補工作名稱。
- 查看「更新資訊」部分。
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 執行個體重新啟動時修補工作遭到取消,重新啟動 (以及任何可能在重新啟動後自動執行的修補作業) 仍會完成,但代理程式不會為該修補工作啟動其他工作。
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。
- 選取「修補程式作業」分頁標籤。
- 展開要取消的修補工作「動作」選單。
- 選取「取消」。
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。