您可以使用「修補程式」,對一組虛擬機器 (VM) 執行個體套用作業系統修補程式。
如要將修補程式套用至 VM,請完成下列步驟:
事前準備
- 查看 OS 設定配額。
- 如要產生 VM 管理員事件的稽核記錄,請啟用資料存取稽核記錄。
- 查看 Patch 的限制。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 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 進行驗證」。
設定 VM
如要使用「修補」功能,請完成下列步驟:
權限
Google Cloud 專案擁有者有完整存取權,可執行及管理修補程式作業。如要讓其他使用者存取,您必須授予權限。您可以授予下列其中一個精細角色:
roles/osconfig.patchJobExecutor:包含執行、取消、取得及列出修補工作的權限。此外,也包含查看修補工作執行個體詳細資料的權限。roles/osconfig.patchJobViewer:包含可取得及列出修補程式作業的唯讀存取權。此外,也包含查看修補工作執行個體詳細資料的權限。
舉例來說,如要授予使用者執行修補工作作業的權限,請使用下列指令:
gcloud projects add-iam-policy-binding project-id \
--member user:user-id@gmail.com \
--role roles/osconfig.patchJobExecutor
更改下列內容:
project-id:專案 ID。user-id:使用者的 Google Workspace 使用者名稱。
執行修補工作
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 執行修補工作。
執行修補工作時,系統會同時在執行個體篩選器指定的所有執行個體上,開始修補 VM。
啟動修補工作後,您可以使用修補程式資訊主頁監控修補程式。修補工作開始後,資訊主頁大約需要 30 分鐘才會填入資料。
控制台
- 在 Google Cloud 控制台中,依序前往「Compute Engine」 >「VM 管理員」 >「Patch」(修補程式) 頁面。
- 按一下「建立修補工作」。
在「目標 VM」部分,指定選取要修補的 VM 的條件。
選取含有要修補 VM 的可用區。你也可以選擇選取所有區域。
選取區域後,您可以進一步篩選該區域內的 VM。
舉例來說,如要修補所選可用區中的特定 VM,請輸入名稱和標籤篩選條件,類似於下列範例:
- 名稱前置字元:
test- - 標籤:「
env=dev」和「app=web」
- 名稱前置字元:
在「其他選項」部分,指定下列項目:
- 允許修補 MIG 執行個體:選取這個選項後,修補工作會在代管執行個體群組 (MIG) 中的 VM 上執行。
- 略過無法修補的 VM:選取這個選項後,修補工作會略過無法修補的 VM (例如執行 Container-Optimized OS 的 VM)。詳情請參閱「MIG 中的 VM 和無法修補的 VM 設定」。
在「修補程式設定」部分,設定修補程式。
- 指定修補程式的「名稱」。
- 選取作業系統的必要更新。詳情請參閱修補程式設定。
在「排程」部分,完成下列步驟:
- 選取時間表。如要立即執行修補工作,請選取「立即開始」。
- 選用:設定時間長度或維護期間。
在「推出選項」部分,設定修補程式推出選項:
- 選取要一次修補一個可用區,還是同時修補多個可用區。
- 設定中斷預算。中斷預算是指您希望修補程序一次中斷的區域 VM 數量或百分比。
選用步驟:在「Advanced options」(進階選項) 部分,您可以完成下列工作:
- 選取重新啟動選項。
- 上傳修補前和修補後指令碼。如要進一步瞭解修補前和修補後指令碼,請參閱「指定修補前和修補後指令碼」。
點選「Deploy」(部署)。
gcloud
使用 os-config patch-jobs execute 指令執行修補工作。將 instance-filter 替換為您想要的執行個體篩選條件。如要進一步瞭解執行個體篩選器,請參閱執行個體篩選器。
gcloud compute os-config patch-jobs execute instance-filter
如要進一步瞭解套用的更新,請參閱「OS 修補工作包含哪些內容」。如要自訂更新,請使用選用標記。
範例
範例 1 如要執行修補工作並採用下列設定:
- 執行個體名稱:
instance-1 - 可用區:
us-east1-b 說明:
patch for instance-1您會執行下列指令:
gcloud compute os-config patch-jobs execute \
--instance-filter-names="zones/us-east1-b/instances/instance-1" \
--description "patch for instance-1"範例 2 假設您想以非同步方式執行修補工作,並採用下列設定:
- 您必須在專案中的所有執行個體上執行修補程式。
- 修補工作必須在 1 小時 30 分鐘後逾時並停止。
- 安裝更新後,機器必須根據系統設定重新啟動。
- 在執行 Apt 的 VM 上,修補作業是透過
apt dist-upgrade執行。 - 在執行 Windows 的 VM 上,只套用
KB4339284更新的修補程式。 - 在執行 Yum 的 VM 上,修補作業是使用
yum update-minimal --security公用程式完成。
您會執行下列指令:
gcloud compute os-config patch-jobs execute \
--instance-filter-all \
--duration="1h30m" --reboot-config="DEFAULT" \
--apt-dist --windows-exclusive-patches=4339284 \
--yum-minimal --yum-security \
--asyncREST
在 API 中,建立 POST 要求來執行新的修補工作。您必須透過 patchJobs.execute API 說明文件,明確定義所有必要的設定欄位。
如要進一步瞭解套用的更新,請參閱「OS 修補工作包含哪些內容」。如要自訂更新,請使用 PatchConfig 參數。
舉例來說,僅含必填欄位的修補工作如下。
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"instanceFilter": instance-filter
}
更改下列內容:
project-id:專案 ID。instance-filter:您想要的篩選器參數。如要進一步瞭解執行個體篩選器,請參閱執行個體篩選器。
範例
範例 1
假設您要在位於 us-east1-b 的 instance1 執行個體上執行修補工作。在這個範例中,我們新增了說明,並指定工作執行時間為 1 小時 30 分鐘。將 project-id 替換為專案 ID。
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"description":"patch instance1 in us-east1-b",
"duration":"5400s",
"instanceFilter":{
"instances":[
"zones/us-east1-b/instances/instance1"
]
}
}
範例 2 下列修補工作會選取具有下列設定的 VM:
- 具有「
env=dev」和「app=web」標籤。 - 位於
asia-east1-b或asia-east1-c。 - 前置字串為
test-。
請將以下指令中的 project-id 替換為您的專案 ID。
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"instanceFilter":{
"groupLabels":[
{
"labels":{
"env":"dev",
"app":"web"
}
}
],
"instanceNamePrefixes":[
"test-"
],
"zones":[
"asia-east1-b",
"asia-east1-c"
]
}
}
範例 3
假設您想執行修補工作,並採用下列設定:
- 您必須在專案中的所有執行個體上執行修補程式。
- 修補工作必須在 1 小時 30 分鐘後逾時並停止。API 規定時間必須以秒為單位,因此請將此值設為 5400 秒。
- 安裝更新後,機器必須根據系統設定重新啟動。
- 在執行 Apt 的 VM 上,修補作業是透過
apt dist-upgrade執行。 - 在執行 Windows 的 VM 上,只套用
KB4339284更新的修補程式。 - 在執行 Yum 的 VM 上,修補作業是使用
yum update-minimal --security公用程式完成。
您會建立下列要求:
請將以下指令中的 project-id 替換為您的專案 ID。
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"duration":"5400s",
"instanceFilter":{
"all":true
},
"patchConfig":{
"rebootConfig":"DEFAULT",
"apt":{
"type":"DIST"
},
"yum":{
"security":true,
"minimal":true
},
"windowsUpdate":{
"exclusivePatches":"4339284"
}
}
}
執行個體篩選器
您可以使用篩選器,指定要納入修補工作的執行個體。修補程式工作支援下列篩選條件:
依名稱篩選:將修補工作限制為具有特定名稱的執行個體。執行個體名稱必須使用完整 URI 指定。支援的 URI 格式包括:
zones/zone/instances/instance-name
projects/project-id/zones/zone/instances/instance-name
https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
依名稱前置字串篩選:將修補工作限制為名稱含有特定前置字串的執行個體。
依可用區篩選:將修補工作限制在特定可用區的執行個體。
依標籤篩選:將修補工作限制為僅適用於具有特定標籤的執行個體。
您也可以在 instanceFilter 中將 all 欄位設為 true,在 Google Cloud 專案中的所有執行個體上執行修補程式作業。詳情請參閱執行個體篩選器範例。
執行個體篩選器範例
| 情境 | gcloud 篩選器 | API 篩選器 |
|---|---|---|
| Google Cloud 專案中的所有執行個體 | --instance-filter-all |
{
"instanceFilter":{
"all":"true"
}
}
|
名稱為 instance1 的執行個體,位於 us-east1-b 區域。 |
--instance-filter-names="zones/us-east1-b/instances/instance1" |
{
"instanceFilter":{
"instances":[
"zones/us-east1-b/instances/instance1"
]
}
}
|
前置字串為 app- 的執行個體 |
--instance-filter-name-prefixes="app-" |
{
"instanceFilter":{
"instanceNamePrefixes":[
"app-"
]
}
}
|
區域 us-east1-b 或 us-east1-c 中的執行個體 |
--instance-filter-zones="us-east1-b","us-east1-c" |
{
"instanceFilter":{
"zones":[
"us-east1-b",
"us-east1-c"
]
}
}
|
標籤組合為 env=dev 和 app=web 的執行個體,以及標籤為 env=dev 和 app=worker 的執行個體。 |
--instance-filter-group-labels="env=dev,app=web" --instance-filter-group-labels="env=dev,app=worker" |
{
"instanceFilter":{
"groupLabels":[
{
"labels":{
"env":"dev",
"app":"web"
}
},
{
"labels":{
"env":"dev",
"app":"worker"
}
}
]
}
}
|
合併執行個體篩選器
您也可以合併執行個體篩選器。舉例來說,如要為前置字串為 test-、位於 us-east1-c 可用區,且具有 env=dev 和 app=web 標籤的執行個體執行修補工作,請執行下列指令:
gcloud compute os-config patch-jobs execute \
--instance-filter-name-prefixes="test-" \
--instance-filter-zones="us-east1-c" \
--instance-filter-group-labels="env=prod,app=web"
修補程式設定
執行修補工作時,您可以指定參數來控管要套用至 VM 的修補程式。修補程式設定參數取決於平台,且通常會傳遞至基礎系統更新工具。實際修補程式的來源是 VM 上設定的套件存放區 (Linux) 或 Windows Update 伺服器 (Windows)。
您可以為 VM 指定下列修補程式設定:
- 如果是 Windows,請指定要套用的修補程式分類 (例如
Security和Critical),或指定要排除的 KB。 如要進一步瞭解修補程式分類,請參閱 Microsoft 支援說明文件。 對於 RHEL、Rocky Linux 和 CentOS,基礎系統為
yum。- 如要為 RHEL 和 Rocky Linux VM 安裝修補程式,可以指定
security和minimal套件。 - 對於 CentOS VM,CentOS
yum存放區中沒有security中繼資料。因此更新安全性套件時,您不需要指定security選項。如果未指定任何套件,修補工作會更新所有套件,包括含有安全性更新的套件。 - 您也可以排除特定套裝組合。詳情請參閱
yum說明文件頁面。
- 如要為 RHEL 和 Rocky Linux VM 安裝修補程式,可以指定
對於 Debian 和 Ubuntu,基礎系統為
apt。如要為這些 VM 安裝修補程式,您可以指定dist-upgrade或標準升級。您也可以排除特定套件。詳情請參閱 Debian 說明文件頁面或 Ubuntu 說明文件頁面。對於 SuSE,底層系統為
zypper,具體來說是使用 zypper 修補程式。針對以這些 VM 為目標的修補程式,您可以指定下列選項:with update:更新修補程式未涵蓋的所有套件with optional:視需要處理選用修補程式- 要套用的修補程式類別或嚴重程度
您也可以排除特定修補程式。
您也可以選擇只安裝核准的修補程式,方法是針對所有支援的作業系統指定這些更新。您可以輸入核准的套件或修補程式清單。選取這些核准的修補程式後,系統只會安裝核准的套件或修補程式。更新期間,系統會略過所有其他修補程式設定參數。
範例
控制台
gcloud
舉例來說,如要在區域 northamerica-northeast1-a 中的所有執行個體上執行修補工作,並為不同作業系統設定特定修補程式,請執行 gcloud compute os-config patch-jobs execute 指令:
gcloud compute os-config patch-jobs execute \
--instance-filter-zones="northamerica-northeast1-a" \
--apt-dist \
--yum-security \
--yum-minimal \
--zypper-categories=security \
--windows-classifications=critical,security \
--reboot-config=default \
--skip-unpatchable-vms
如要進一步瞭解支援的選項,請執行下列指令:
gcloud compute os-config patch-jobs execute --help
REST
舉例來說,如要在可用區 northamerica-northeast1-a 中,對所有執行個體執行修補工作,並為不同作業系統設定特定修補程式,請執行下列指令:
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"instanceFilter":{
"zones":[
"northamerica-northeast1-a"
]
},
"patchConfig":{
"apt": {
"type": "dist-upgrade"
},
"yum": {
"security": true,
"minimal": true
},
"zypper": {
"categories": ["security"]
},
"windowsUpdate": {
"classifications": ["CRITICAL", "SECURITY"]
},
"rebootConfig": "DEFAULT"
},
"skipUnpatchableVms": true
}
如要進一步瞭解支援的參數,請參閱 PatchConfig API 說明文件。
MIG 中的 VM 和無法修補的 VM 設定
如要指定 VM 管理員處理代管執行個體群組 (MIG) 中的 VM,或執行不支援修補作業的作業系統的 VM,請在修補程式設定中使用下列布林選項:
- 允許修補 MIG 執行個體:根據預設,VM 管理員不會修補任何屬於 MIG 的 VM。如要修補 MIG 中的 VM,請將
migInstancesAllowed設為true。如要進一步瞭解修補 MIG 中 VM 的限制,請參閱「限制」一節。 略過無法修補的 VM:如果將
skipUnpatchableVms設為true,只要符合下列任一條件,VM 管理員就會略過 VM 修補作業:- VM 的作業系統不支援修補。例如 Container-Optimized OS。請參閱「支援的作業系統」。
- VM 屬於 MIG,且
migInstancesAllowed設為false。
如果是使用 Google Cloud 控制台建立的修補工作,系統預設會選取「略過無法修補的 VM」選項。
如果
skipUnpatchableVms設為true,修補工作會將無法修補的 VM 修補程式狀態回報為SKIPPED。此外,如果沒有發生其他錯誤,修補工作會針對閒置 VM 回報COMPLETED_WITH_INACTIVE_VMS狀態,而非COMPLETED_WITH_ERRORS。
維護期間
維護期間是指允許修補工作執行的總時間長度。如果修補程式工作未在指定維護時段內完成,就會逾時。
舉例來說,如果您將維護期間設為 60 minutes,系統就不會在開始時間後 60 分鐘內啟動新的修補程式工作。部分程序 (例如下載檔案或重新啟動) 可能會在維護期間外執行,但系統不會啟動新的修補工作。
重新啟動選項
執行修補工作時,您可以指定修補程式的重新啟動選項。可用的選項如下:
- 預設:代理程式會檢查各個 OS 的常見信號,藉此判定是否需要重新啟動。修補期間可能會多次重新啟動,也可能在安裝任何修補程式前重新啟動。
- 一律重新啟動:機器會在更新作業完成後重新啟動。
- 永不:機器在更新作業完成後不會重新啟動。在某些情況下,這可能表示並非所有修補程式都已完全套用。
修補前和修補後指令碼
執行修補工作時,您可以指定要執行的指令碼,做為修補程序的一部分。這些指令碼可用於執行關閉應用程式和執行健康狀態檢查等工作。
- 在修補作業展開前運作的修補前指令碼。如果系統必須在修補作業展開前重新啟動,則修補前指令碼會在系統重新啟動前開始運作。
- 在修補作業完成後運作的修補後指令碼。如果系統必須在修補作業中重新啟動,則修補後指令碼會在系統重新啟動後開始運作。
修補工作可接受 Linux 的修補前和修補後指令碼各一,以及 Windows 的修補前和修補後指令碼各一。使用 Google Cloud CLI、REST 或 Google Cloud 控制台指定 Linux 和 Windows 指令碼時,必須使用適當的旗標、參數或區段。Linux 指令碼只能在 Linux VM 上執行,Windows 指令碼只能在 Windows VM 上執行。
這些指令碼檔案可以儲存在 VM 或已啟用版本控管的 Cloud Storage 值區中。
將修補程式指令碼儲存在 Cloud Storage bucket 中
如要使用 Cloud Storage bucket 儲存指令碼,請建立 Cloud Storage bucket,並將指令碼上傳至 bucket。使用 Cloud Storage bucket 時,請注意下列事項:
- 如果 Cloud Storage 物件無法公開讀取,請確保附加至執行個體的服務帳戶具備讀取 Cloud Storage 物件的必要 IAM 權限。如要確認您具備適當權限,請檢查 Cloud Storage 物件的權限設定。
- 使用Google Cloud 控制台從 Cloud Storage 選取指令碼時,系統預設會使用指定 Cloud Storage 物件的最新版本。
如果貴機構強制執行資源位置限制條件,則必須將指令碼儲存在機構政策允許的區域和可用區的 Cloud Storage 值區中。
控制台
gcloud
舉例來說,如要在可用區 northamerica-northeast1-a 的所有執行個體上執行修補工作,並為 Linux 和 Windows 執行個體提供修補前和修補後指令碼,請執行下列指令:
gcloud compute os-config patch-jobs execute \
--instance-filter-zones="northamerica-northeast1-a" \
--async \
--pre-patch-linux-executable="/tmp/pre_patch_script.sh" \
--post-patch-linux-executable="gs://my-patch-scripts/linux/post_patch_script#1523477886880" \
--pre-patch-windows-executable="C:\\Users\\user\\pre-patch-script.cmd" \
--post-patch-windows-executable="gs://my-patch-scripts/windows/post_patch_script.ps1#135920493447"
如要進一步瞭解可接受的檔案格式,請執行下列指令:
gcloud compute os-config patch-jobs execute --help
REST
舉例來說,如要在可用區 northamerica-northeast1-a 的所有執行個體上執行修補工作,並為 Linux 和 Windows 執行個體提供修補前和修補後指令碼,請執行下列指令:
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"instanceFilter":{
"zones":[
"northamerica-northeast1-a"
]
},
"patchConfig":{
"preStep":{
"linuxExecStepConfig":{
"localPath":"/tmp/pre_patch_script.sh"
},
"windowsExecStepConfig":{
"interpreter":"SHELL",
"localPath":"C:\\Users\\user\\pre-patch-script.cmd"
}
},
"postStep":{
"linuxExecStepConfig":{
"gcsObject":{
"bucket":"my-patch-scripts",
"generationNumber":"1523477886880",
"object":"linux/post_patch_script"
}
},
"windowsExecStepConfig":{
"gcsObject":{
"bucket":"my-patch-scripts",
"generationNumber":"135920493447",
"object":"windows/post_patch_script.ps1"
},
"interpreter":"POWERSHELL"
}
}
}
}
如要進一步瞭解可接受的檔案格式,請參閱 PatchConfig API 說明文件的 ExecStepConfig 一節。
修補程式推出選項
您可以選擇一次修補一個可用區的 VM (逐一修補可用區),或一次修補所有可用區的 VM (並行修補可用區)。
除了選取可用區推出作業,您也可以為 VM 指定可用區中斷預算。
可用區服務中斷預算
中斷預算是指各可用區在特定時間內受中斷的 VM 數量 (或百分比) 上限。
什麼是中斷的 VM?
修補期間,從系統通知 OS 設定代理程式開始修補,到修補完成為止,VM 都會視為中斷。這段中斷時間包括完成重新啟動和任何修補後步驟的時間。
如果 VM 符合下列任一條件,也會計入中斷預算:
- 套用修補程式時,修補作業失敗
- 執行修補前或修補後步驟時,修補作業失敗
- 修補作業在逾時前,無法回應成功通知
中斷預算的運作方式
如果是逐區推出,如果某個區域超出服務中斷預算,修補工作就會停止。這是因為要繼續前往下一個區域,必須先完成上一個區域的修補程序。
舉例來說,如果中斷預算的值為 10,且目前可用區中有 8 部 VM 無法修補,修補工作會繼續一次修補 2 部 VM,直到該可用區完成修補為止。該可用區完成修補後,系統會開始修補下一個可用區,一次修補 10 部 VM。如果下一個可用區中有 10 部 VM 無法修補,修補工作就會停止。
範例
控制台
gcloud
範例 1
本範例顯示如何使用 os-config patch-jobs execute 指令,執行符合下列規格的修補工作:
- 修補專案中的所有 VM
- 逐一修補 VM 可用區
- 確保在特定時間內,同一可用區中受影響的 VM 不超過 10 個
gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=zone-by-zone \ --rollout-disruption-budget=10
示例 2
本範例顯示如何使用 os-config patch-jobs execute 指令,執行符合下列規格的修補工作:
- 修補專案中的所有 VM
- 同時修補多個可用區
- 確保同一可用區中受中斷的 VM 不超過 50%
gcloud compute os-config patch-jobs execute \ --instance-filter-all \ --rollout-mode=concurrent-zones \ --rollout-disruption-budget-percent=50
REST
這個範例顯示如何使用 patchJobs.execute 方法,以執行符合下列規格的修補工作:
- 修補可用區
us-central1-a、us-central1-c和us-central1-f中的所有 VM - 同時修補多個可用區
- 確保同一區域中,在特定時間內中斷的執行個體不超過 25%
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
"instanceFilter":{
"zones":[
"us-central1-a",
"us-central1-c",
"us-central1-f"
]
},
"rollout": {
"disruptionBudget": {
"percent": 25
},
"mode": "CONCURRENT_ZONES"
}
}
如要進一步瞭解修補程式推出作業,請參閱 PatchRollout API 說明文件。
在 Windows VM 上啟用 Microsoft 軟體修補程式
在 Windows VM 上執行修補工作時,Patch 預設只會套用 Windows 作業系統的修補程式。
執行修補工作時,您可以為 Windows VM 上執行的 Microsoft 軟體套用更新,例如 Microsoft SQL Server、SharePoint Server 或 .NET Framework。根據預設,系統會停用這些應用程式的修補程式,避免服務中斷,並將這些軟體的排定更新作業分開處理。如要自動修補 Microsoft 軟體,可以使用 Windows UI 或 PowerShell。
Windows UI
- 在「Windows 開始」選單中,依序選取「設定」>「更新與安全性」>「Windows Update」。
- 在「進階選項」部分,開啟「在更新 Windows 時接收其他 Microsoft 產品的更新」。
PowerShell
$service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager'
$service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")
偵錯修補工作
如果修補程式安裝失敗,請按照下列步驟找出並解決問題。
查看受影響修補工作的執行個體詳細資料。這有助於找出失敗的執行個體,或執行個體停滯的狀態。執行個體詳細資料清單也會顯示每個執行個體的簡短錯誤訊息。
如果修補程式失敗,且狀態為
NO_AGENT_DETECTED或TIMED_OUT,通常表示服務已傳送要求給代理程式,要求開始修補,但代理程式未回報。請查看下列可能原因和修正方式:- 執行個體未運作。如要修正這個問題,請啟動 VM 執行個體。
- 使用驗證檢查清單驗證設定。
- 虛擬私有雲網路或執行個體上的網路設定,不允許 OS Config 代理程式與 OS Config API 通訊。如要修正這個問題,請檢查聯播網設定。
如果執行個體詳細資料提供的資訊不足,請查看 Cloud Logging 記錄或序列埠控制台。OS Config 代理程式會將記錄項目寫入這兩個位置。 在 Cloud Logging 中,您可以使用修補工作 ID 進行篩選,查看與該修補工作相關的所有記錄項目。您也可以在 VM 或專案層級設定
osconfig-log-level=debug中繼資料值,啟用偵錯記錄。 Google Cloud