除了視需要執行修補程式工作,您也可以建立修補程式部署作業,讓修補程式工作根據設定的排程自動執行。
每個修補程式部署作業都可以設定一次性排程,在特定日期和時間執行修補程式工作,也可以設定週期性排程,在指定間隔執行修補程式工作。
執行個體篩選器可讓您同時修補多個執行個體。這些篩選器會在每個修補程式作業執行時套用。確保系統能即時擷取專案變更。
舉例來說,假設您建立修補程式部署作業,要從兩週後開始,將修補程式套用至區域 asia-souteast1-b
中的所有執行個體。建立修補程式時,區域中有 20 個執行個體,但幾天後,區域中新增了 40 個執行個體。由於篩選器是在修補程式開始時套用,因此所有 60 個執行個體都會更新。這樣一來,您就能新增及移除執行個體,不必更新修補程式部署時間表。
事前準備
- 查看 OS 設定配額。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 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
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST,排定修補程式工作。
權限
專案擁有者有權建立及管理修補程式部署作業。 如要授予其他使用者權限,您可以授予下列其中一項精細角色:
roles/osconfig.patchDeploymentAdmin
:包含建立、刪除、取得及列出修補程式部署作業的權限。roles/osconfig.patchDeploymentViewer
:包含唯讀存取權的權限,可取得及列出修補程式部署作業。
舉例來說,如要授予使用者修補程式部署作業的管理員存取權,請執行下列指令:
gcloud projects add-iam-policy-binding project-id \ --member user:user-id@gmail.com \ --role roles/osconfig.patchDeploymentAdmin
更改下列內容:
project-id
:專案 ID。user-id
:使用者的 Google Workspace 使用者名稱。
建立修補程式部署作業
建立修補程式部署作業時,修補程式部署作業的名稱必須符合下列命名規定:
- 每個名稱在專案中不得重複
- 只能包含小寫字母、數字和連字號
- 以英文字母開頭
- 結尾為數字或英文字母
- 長度介於 1 至 63 個字元之間
在 Google Cloud CLI 和 REST 中,修補程式部署作業的名稱稱為
patch-deployment-id
。開始部署修補程式後,您可以使用修補程式資訊主頁監控修補程式。 修補程式作業開始後,大約需要 30 分鐘,資訊主頁才會填入資料。
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM Manager」 >「Patch」(修補程式) 頁面。
- 按一下「新增修補程式部署作業」。
在「目標 VM」部分中,選取要修補的 VM 所在的區域。你也可以選擇選取所有區域。
舉例來說,如要修補所選可用區中的特定 VM,請輸入名稱和標籤篩選條件,類似於下列範例:
- 名稱前置字元:
test-
- 標籤:「
env=dev
」和「app=web
」
- 名稱前置字元:
在「修補程式設定」部分中,設定修補程式。
- 指定修補程式的「名稱」。
- 選取作業系統的必要更新。詳情請參閱「作業系統修補程式工作包含哪些內容」。
在「排程」部分中,完成下列操作:
- 選取時間表。您可以排定一次性修補工作或週期性修補工作。
- (選用) 設定時間長度或維護時間範圍。
在「推出選項」部分,設定修補程式推出選項:
- 選取要一次修補一個可用區,還是同時修補多個可用區。
- 設定中斷預算。中斷預算是指您希望修補程序一次中斷的區域 VM 數量或百分比。
(選用) 在「Advanced options」(進階選項) 部分,您可以完成下列工作:
- 選取重新啟動選項。
- 上傳修補前和修補後指令碼。如要進一步瞭解修補前和修補後指令碼,請參閱「指定修補前和修補後指令碼」。
按一下 [Deploy] (部署)。
gcloud
使用
os-config patch-deployments create
指令建立修補程式部署作業。gcloud compute os-config patch-deployments create patch-deployment-id \ --file patch-deployment-file
更改下列內容:
patch-deployment-id
:修補程式部署作業的名稱。patch-deployment-file
:包含修補程式部署作業設定的 YAML 或 JSON 檔案路徑。
範例修補程式部署作業 YAML 檔案
以下 YAML 檔案範例可用於在
us-west2-b
和us-west2-c
區域中,為所有執行個體建立週期性排程。週期性排程的規格如下:- 開始日期為 2019 年 1 月 9 日下午 7:30
- 結束日期為 2020 年 1 月 9 日晚上 7:30
- 使用的時區為「America/Los_Angeles」
- 每週二執行
instanceFilter: zones: - us-west2-b - us-west2-c recurringSchedule: frequency: WEEKLY weekly: dayOfWeek: TUESDAY timeOfDay: hours: 19 minutes: 30 timeZone: id: America/Los_Angeles startTime: '2019-09-01T12:00:00Z' endTime: '2020-09-01T12:00:00Z'
REST
在 API 中,建立
POST
要求來建立新的修補程式部署作業。您必須透過patchDeployments.create
API 說明文件,明確定義所有必要的設定欄位。舉例來說,包含最少必要欄位 (執行個體篩選器和排程) 的修補程式部署作業如下所示。將project-id
替換為您的專案 ID。POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute { "instanceFilter": instance-filter // Add one of the following parameters: "recurringSchedule": schedule "oneTimeSchedule": schedule }
更改下列內容:
project-id
:您的專案 ID。instance-filter
:所需的篩選參數。如要進一步瞭解執行個體篩選器,請參閱執行個體篩選器。schedule
:提供oneTimeSchedule
或recurringSchedule
參數,詳細說明排程參數,例如執行修補程式工作的日期、時間和頻率。
範例
範例 1:建立一次性排程,在 2020 年 1 月 10 日世界標準時間凌晨 12 點,對
us-west2-b
和us-west2-c
區域中的所有執行個體執行修補程式工作。{ "instanceFilter":{ "zones":[ "us-west2-b", "us-west2-c" ] }, "oneTimeSchedule": { "executeTime": "2020-01-10T00:00:00Z" } }
範例 2:為可用區
us-west2-b
和us-west2-c
中的所有執行個體建立週期性排程。週期性排程的規格如下:- 開始日期為 2019 年 1 月 9 日下午 7:30
- 結束日期為 2020 年 1 月 9 日晚上 7:30
- 使用的時區為「America/Los_Angeles」
- 每週二執行
POST https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments { "instanceFilter":{ "zones":[ "us-west2-b", "us-west2-c" ] }, "recurringSchedule":{ "frequency":"WEEKLY", "weekly":{ "dayOfWeek":"TUESDAY" }, "timeOfDay":{ "hours":19, "minutes":30 }, "timeZone":{ "id":"America/Los_Angeles" }, "startTime":"2019-09-01T12:00:00Z", "endTime":"2020-09-01T12:00:00Z" } }
列出修補程式部署作業
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM Manager」 >「Patch」(修補程式) 頁面。
- 選取「排定的部署作業」分頁標籤。
gcloud
使用
os-config patch-deployments list
指令列出修補程式部署作業。gcloud compute os-config patch-deployments list
這個指令會傳回所有修補程式部署作業。輸出結果會與下列內容相似:
NAME LAST_RUN NEXT_RUN FREQUENCY first-deployment 2019-12-18T00:07:00.738Z --- Once: Scheduled for 2019-12-18T00:07:00.000Z my-deployment1 2020-01-05T14:00:00.228Z 2020-01-12T14:00:00Z Recurring - Weekly my-deployment2 --- 2020-01-15T05:30:00Z Recurring - Monthly on specific date(s)
您可以使用更多旗標來限制及設定搜尋格式。 舉例來說,如要以 2 個為一頁列出前 10 個修補程式部署作業,請執行下列指令。將
project-id
替換為您的專案 ID。gcloud compute os-config patch-deployments list --limit 10 --page-size 2
REST
在 API 中,建立目標為
patchDeployments.list
方法的GET
要求。將project-id
替換為您的專案 ID。GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments
描述修補程式部署作業
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM Manager」 >「Patch」(修補程式) 頁面。
- 選取「排定的部署作業」分頁標籤。
- 按一下要查看的部署作業名稱。
gcloud
使用
os-config patch-deployments describe
指令說明修補程式部署作業。將patch-deployment-id
替換為修補程式部署作業的名稱。gcloud compute os-config patch-deployments describe patch-deployment-id
REST
在 API 中,建立目標為
patchDeployments.get
方法的GET
要求。GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id
更改下列內容:
project-id
:您的專案 ID。patch-deployment-id
:修補程式部署作業名稱。
刪除修補程式部署作業
主控台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM Manager」 >「Patch」(修補程式) 頁面。
- 選取「排定的部署作業」分頁標籤。
- 按一下要刪除的部署作業名稱。
- 按一下「刪除這項排程」。
gcloud
使用
os-config patch-deployments delete
指令刪除修補程式部署作業。將patch-deployment-id
換成修補程式部署作業的名稱。gcloud compute os-config patch-deployments delete patch-deployment-id
REST
在 API 中建立目標為
patchDeployments.delete
方法的DELETE
要求。DELETE https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id
更改下列內容:
project-id
:您的專案 ID。patch-deployment-id
:修補程式部署作業名稱。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-08 (世界標準時間)。
-