我想要疑難排解失敗的 Patch Manager (Linux) 作業。
簡短說明
修補作業可能會因各種原因而失敗,而針對錯誤的疑難排解方式則會因作業系統 (OS) 有所不同。您可以在 AWS 管理主控台或 API 回應中找到錯誤。不過,主控台輸出會在 48,000 個字元時遭到截斷,這會限制特定問題的可見性。針對這些問題,最佳實務是檢閱儲存在受管節點上的完整輸出。您也可以使用傳送到 Amazon CloudWatch 和 Amazon Simple Storage Service (Amazon S3) 的輸出,以進一步進行疑難排解。
解決方法
若要針對 Patch Manager (Linux) 作業失敗時收到的錯誤訊息進行疑難排解,請完成下列任務。
使用 AWSSupport-TroubleshootPatchManagerLinux 執行手冊
使用 AWSSupport-TroubleshootPatchManagerLinux 來針對 Linux 受管節點的修補錯誤進行疑難排解。
檢視您的分區和許可
使用 noexec 許可裝載 /var/lib/amazon 時,您會收到下列錯誤訊息範例:
"/var/lib/amazon/ssm/<instanceid>/document/orchestration/<commandid>/PatchLinux/_script.sh: Permission deniedfailed to run commands: exit status 126"
若要解決此問題,請將專屬分區設定為 /var/log/amazon 和 /var/lib/amazon,並使用 exec 許可來裝載它們。
檢閱您的受管節點許可
當受管節點沒有存取指定 Amazon S3 儲存貯體的必要許可時,即會發生下列錯誤範例:
"Unable to download payload: https://s3.DOC-EXAMPLE-BUCKET.region.amazonaws.com/aws-ssm-region/patchbaselineoperations/linux/payloads/patch-baseline-operations-X.XX.tar.gz.failed to run commands: exit status 156"
若要解決此問題,請更新您的網路組態,並確定您可以到達 AWS 區域 Amazon S3 端點。如需詳細資訊,請參閱 AWS Systems Manager Agent (SSM Agent) 與 AWS 受管 S3 儲存貯體的通訊。
檢閱 Run 命令任務和目錄空間
當兩個命令同時在相同受管節點上執行 AWS-RunPatchBaseline 時,您會收到下列錯誤訊息範例。當 /var 目錄上沒有可用的磁碟空間時,您也可以收到此錯誤訊息。
錯誤範例:
"IOError: [Errno 2] No such file or directory: 'patch-baseline-operations-X.XX.tar.gz'Unable to extract tar file: /var/log/amazon/ssm/patch-baseline-operations/patch-baseline-operations-1.75.tar.gz.
failed to run commands: exit status 155
Unable to load and extract the content of payload, abort.
failed to run commands: exit status 152"
若要解決此問題,請完成下列任務:
- 請確定沒有任何維護時段擁有兩個或多個執行 AWS-RunPatchBaseline 的 Run 命令。任務不能具有相同的優先順序等級,並在相同的目標 ID 上執行。若有必要,請變更優先順序等級。
- 請確定只有一個 State Manager 關聯在相同的排程上執行 AWS-RunPatchBaseline,並以相同的受管節點為目標。
- 在 /var 目錄下提供更多磁碟空間。
檢閱在受管節點上執行的程序
當 AWS-RunPatchBaseline 在正在執行 yum 的受管節點上執行時,並且另一個程序已經鎖定資料庫時,即會發生下列錯誤訊息範例:
"MM/DD/YYYY HH:MM:SS root [INFO]: another process has acquired yum lock, waiting 2 s and retry."
若要解決此問題,請完成下列任務:
- 沒有任何 State Manager 關聯、維護時段任務,或其他依排程執行 AWS-RunPatchBaseline 的組態會同時以相同的受管節點為目標。
- 請確定沒有同時執行手動 yum 作業。
檢閱伺服器的 Python 版本
當 Red Hat Enterprise Linux (RHEL)、Debian Server、Raspberry Pi 或 Ubuntu Server 執行個體上未安裝支援的 Python 3 版本時,您會收到下列錯誤訊息範例:
"An unsupported package manager and python version combination was found.Dnf requires Python 2 or Python 3 to be installed."
若要解決此錯誤,請在所需的伺服器上安裝 Python 第 3 版 (3.0-3.9)。
檢閱您的作業系統
不支援作業系統時,您會收到下列錯誤訊息範例:
"An error occurred (UnsupportedOperatingSystem) when calling the GetDeployablePatchSnapshotForInstance operation: patch_common.exceptions.PatchManagerError: ('Unsupported Operating System', 146)"
若要解決此問題,請使用 Patch Manager 支援的作業系統。
檢閱執行個體的輸出
修補作業失敗並且主控台輸出遭截斷後,您可能無法檢視整個輸出。
若要解決此錯誤,請在下列位置檢閱執行個體的整個輸出:
"/var/lib/amazon/ssm/<example-instance-id>/document/orchestration/<example-command-id>/awsrunShellScript/PatchLinux/stdout"
**注意:**將所有範例字串取代為您的值。
您也可以將作業設定為將 Run 命令輸出傳送到 Amazon S3 或 CloudWatch。