내용으로 건너뛰기

Patch Manager(Linux) 작업이 실패하는 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Patch Manager(Linux) 작업이 실패하는 문제를 해결하고 싶습니다.

간략한 설명

패치 작업이 실패하는 데에는 여러 가지 이유가 있으며 오류를 해결하는 방법은 운영 체제(OS)에 따라 다릅니다. AWS Management Console이나 API 응답에서 오류 메시지를 찾을 수 있습니다. 하지만 콘솔 출력이 48,000자를 넘을 경우에는 메시지가 잘리기 때문에 특정 문제 메시지를 볼 수 없을 수 있습니다. 이 경우 관리 노드에 저장된 전체 출력을 검토하는 것이 좋습니다. 또 Amazon CloudWatch와 Amazon Simple Storage Service(Amazon S3)로 전송된 출력을 사용해 문제를 해결할 수도 있습니다.

해결 방법

Patch Manager(Linux) 작업이 실패했을 때 나타나는 오류 메시지 문제를 해결하려면 다음을 실행하세요.

AWSSupport-TroubleshootPatchManagerLinux 런북 사용

Linux 기반 관리형 노드에서 패치 실패 문제를 해결하려면 AWSSupport-TroubleshootPatchManagerLinux를 사용하세요.

파티션 및 권한 검토

다음은 var/lib/amazonnoexec 권한과 연결되었을 때 발생하는 오류 메시지 예시입니다.

"/var/lib/amazon/ssm/<instanceid>/document/orchestration/<commandid>/PatchLinux/_script.sh: Permission deniedfailed to run commands: exit status 126"

이 문제를 해결하려면 /var/log/amazo/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 관리형 S3 버킷과 AWS Systems Manager Agent(SSM Agent) 통신을 참고하세요.

명령 실행 작업과 디렉터리 공간 검토

동일한 관리 노드에서 명령 두 개가 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을 실행하는 명령 실행 작업 2개 이상에서 유지 관리 기간이 중복되어서는 안 됩니다. 같은 대상 ID에서 우선순위 수준이 동일한 작업을 실행할 수 없습니다. 필요한 경우 우선순위 수준을 바꾸세요.
  • 동일한 일정으로 AWS-RunPatchBaseline을 실행하며 같은 관리형 노드를 대상으로 하는 State Manager 연결이 하나만 있어야 합니다.
  • /var 디렉터리 아래에 디스크 공간을 확보하세요.

관리형 노드에서 실행되는 프로세스 검토

yum이 이미 실행 중이고 다른 프로세스에서 데이터베이스를 잠근 상태의 관리형 노드에서 AWS-RunPatchBaseline을 실행할 경우 다음 예시와 같은 오류 메시지가 나타납니다.

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

이 문제를 해결하려면 다음 작업을 완료하세요.

  • AWS-RunPatchBaseline을 실행하는 State Manager 연결, 유지관리 창 작업, 또는 다른 구성을 설정할 때 동일한 관리형 노드에서 작업을 동시에 하지 않도록 해야 합니다.
  • 수동 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)을 설치하세요.

내 OS 검토

지원되지 않는 OS를 사용 중인 경우 다음 예시와 같은 오류 메시지가 나타납니다.

"An error occurred (UnsupportedOperatingSystem) when calling the GetDeployablePatchSnapshotForInstance operation: patch_common.exceptions. PatchManagerError: ('Unsupported Operating System', 146)"

이 문제를 해결하려면 지원되는 Patch Manager용 OS를 사용하세요.

인스턴스 출력 검토

패치 작업이 실패하고 콘솔 출력이 잘리면 전체 출력을 보지 못할 수 있습니다.

이 오류를 해결하려면 다음 위치에서 인스턴스의 전체 출력을 살펴보세요.

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

참고: 모든 예제 문자열을 내게 맞는 값으로 바꾸세요.

명령 실행 출력을 Amazon S3나 CloudWatch로 전송하도록 작업을 구성할 수 있습니다.

AWS 공식업데이트됨 2년 전