如何疑難排解失敗的 Patch Manager (Linux) 作業?

2 分的閱讀內容
0

我想要疑難排解失敗的 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-RunPatchBaselineRun 命令。任務不能具有相同的優先順序等級,並在相同的目標 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。

AWS 官方
AWS 官方已更新 8 個月前