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

2 分的閱讀內容
0

我想要疑難排解失敗的 Patch Manager (Linux) 作業。

簡短說明

修補作業可能因多種原因而失敗,錯誤的疑難排解可能會因使用的作業系統不同而有所不同。您可以在 AWS 管理主控臺或 API 回應中找到錯誤。不過,主控臺輸出會被截斷為 48,000 個字元,這會限制特定問題的可見性。針對這些問題,最佳實務是檢閱儲存在受管理節點上的完整輸出。您也可以使用傳送到 Amazon CloudWatch (CloudWatch) 和 Amazon Simple Storage Service (Amazon S3) 的輸出,以進一步疑難排解。

以下是 Patch Manager (Linux) 作業失敗時可能會收到的錯誤:

  • 許可遭拒/運行命令失敗
  • 無法下載負載
  • 沒有此類檔案或目錄
  • 另一個程式已經獲得了 yum 鎖
  • 不受支援的套件管理員和 Python 版本組合
  • 不受支援的作業系統
  • 輸出截斷

解決方法

若要疑難排解 Patch Manager (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

若要解決此錯誤,請更新您的網路組態,並確保可連線區域 Amazon S3 端點。如需詳細資訊,請參閱 AWS 受管 S3 儲存貯體的 SSM 代理程式通訊

沒有此類檔案或目錄

發生下列範例錯誤的原因如下:

  • 在相同的受管節點上執行 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執行命令。任務不能具有相同的優先級別,並在相同的目標 ID 上運行。如有必要,請重新排序優先級別。
  • 請確定只有一個狀態管理員關聯在相同的排程上執行 AWS-RunPatchBaseline,並以相同的受管節點為目標。
  • 釋放 /var 目錄下的磁碟空間。

另一個程式已經獲得了 yum 鎖

AWS-RunPatchBaseline 在正在執行 yum 的受管節點上執行時,并且另一個程式已經鎖定資料庫時,就會發生下列範例錯誤:

MM/DD/YYYY HH:MM:SS root [INFO]: another process has acquired yum lock, waiting 2 s and retry.

若要解決此錯誤,請確定下列事項:

  • 沒有任何狀態管理員關聯、維護視窗任務或其他依排程執行 AWS-RunPatchBaseline 的組態會同時以相同的受管節點為目標。
  • 沒有同時執行任何手動 yum 作業。

不受支援的套件管理員和 Python 版本組合

當未在 RHEL、Debian 伺服器、Raspberry Pi 或 Ubuntu 伺服器執行個體上安裝受支援的 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)

若要解決此錯誤,請使用受支援的作業系統

輸出截斷

當修補作業失敗且主控臺輸出遭截斷時,就會發生此錯誤,導致無法檢視錯誤。主控臺輸出被截斷為 48,000 字。

若要解決此錯誤,請在下列位置檢閱執行個體的整個輸出:

注意:確保將所有範例字符串取代為所需的值。

/var/lib/amazon/ssm/<example-instance-id>/document/orchestration/<example-command-id>/awsrunShellScript/PatchLinux/stdout

您也可以將作業設定為將執行命令輸出傳送到 Amazon S3 或 CloudWatch。

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