您可以透過「修補程式」,對一組虛擬機器 (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
如要使用「修補」功能,請完成下列步驟:
- 為所有 VM 設定 VM 管理員。
- 對於 Windows VM,Google 建議停用 VM 的自動更新。這樣做可減少 Windows 自動更新與 Patch 服務之間的衝突。
權限
專案 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 設定」。
在「修補程式設定」部分,設定修補程式。
- 指定修補程式的「Name」(名稱)。
- 選取作業系統的必要更新。詳情請參閱「修補程式設定」。
在「排程」部分,完成下列步驟:
- 選取時間表。如要立即執行修補工作,請選取「立即開始」。
- 選用:設定時間長度或維護期間。
在「推出選項」部分,設定修補程式推出選項:
- 選取要一次修補一個可用區,還是同時修補多個可用區。
- 設定中斷預算。中斷預算是指可用區中,您希望修補程序一次中斷的 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 bucket 中。
將修補程式指令碼儲存在 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 bucket 中。
控制台
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 Config 代理程式開始修補,到修補完成為止,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 或 Google Cloud 專案層級設定
osconfig-log-level=debug中繼資料值,啟用偵錯記錄。