Patch Manager 문제 해결
다음 정보를 사용하면 AWS Systems Manager의 기능인 Patch Manager 관련 문제를 해결하는 데 도움이 됩니다.
주제
문제: baseline_overrides.json
에 대한 "Invoke-PatchBaselineOperation: 액세스 거부됨" 오류 또는 "S3에서 파일을 다운로드할 수 없음" 오류
문제: 패치 정책에 따라 지정된 패치 적용 작업을 실행하면 다음 예제와 비슷한 오류가 표시됩니다.
원인: Quick Setup에서 패치 정책을 생성했으며, 연결된 인스턴스 프로파일(EC2 인스턴스의 경우) 또는 연결된 서비스 역할(비 EC2 시스템의 경우)이 이미 일부 관리형 노드에 있었습니다.
그러나 다음 이미지와 같이 인스턴스에 연결된 기존 인스턴스 프로파일에 필수 IAM 정책 추가 확인란을 선택하지 않았습니다.
패치 정책을 생성하면 정책의 구성 baseline_overrides.json
파일을 저장하는 Amazon S3 버킷도 생성됩니다. 정책을 생성할 때 인스턴스에 연결된 기존 인스턴스 프로파일에 필수 IAM 정책 추가 확인란을 선택하지 않으면 S3 버킷의 baseline_overrides.json
에 액세스하는 데 필요한 IAM 정책 및 리소스 태그가 기존 IAM 인스턴스 프로파일 및 서비스 역할에 자동으로 추가되지 않습니다.
솔루션 1: 기존 패치 정책 구성을 삭제한 다음에 대체 패치 정책 구성을 생성하고, 인스턴스에 연결된 기존 인스턴스 프로파일에 필수 IAM 정책 추가 확인란을 반드시 선택합니다. 이렇게 선택하면 연결된 인스턴스 프로파일 또는 서비스 역할이 이미 있는 노드에 이 Quick Setup 구성을 통해 생성된 IAM 정책이 적용됩니다. (기본적으로 Quick Setup에서는 인스턴스 프로파일 또는 서비스 역할이 아직 없는 인스턴스와 노드에 필수 정책을 추가합니다.) 자세한 내용은 Quick Setup 패치 정책을 사용하여 조직 전반의 패치 적용 자동화를 참조하세요.
솔루션 2: Quick Setup에서 사용하는 각 IAM 인스턴스 프로파일 및 IAM 서비스 역할에 필수 권한과 태그를 수동으로 추가합니다. 지침은 패치 정책 S3 버킷에 대한 권한 단원을 참조하십시오.
문제: 명백한 원인 또는 오류 메시지 없이 패치 적용 실패
문제: 오류 메시지가 반환되지 않고 패치 적용 작업이 실패합니다.
가능한 원인: AWS-RunPatchBaseline
간접 호출이 한 번에 두 번 이상 발생하면 간접 호출이 서로 충돌하여 패치 적용 작업이 실패할 수 있습니다. 패치 적용 로그에는 이 내용이 표시되지 않을 수 있습니다.
동시 패치 적용 작업이 서로 방해될 수 있었는지 확인하려면 AWS Systems Manager의 기능인 Run Command에서 명령 기록을 검토합니다. 패치 적용에 실패한 관리형 노드의 경우 여러 작업에서 서로 2분 이내에 시스템 패치 적용이 시도되었는지 확인합니다. 이 시나리오가 오류의 원인일 수도 있습니다.
다음 명령을 사용하면 AWS Command Line Interface(AWS CLI)를 사용하여 동시 패치 시도를 확인할 수도 있습니다. node-id
값을 관리형 노드의 ID로 바꿉니다.
aws ssm list-commands \ --filter "key=DocumentName,value=AWS-RunPatchBaseline" \ --query 'Commands[*].{CommandId:CommandId,RequestedDateTime:RequestedDateTime,Status:Status}' \ --instance-id
node-id
\ --output table
솔루션: 동일한 관리형 노드에서 경쟁하는 패치 적용 작업 때문에 패치 적용에 실패했다고 판단되면 이 오류가 다시 발생하지 않도록 패치 적용 구성을 조정합니다. 예를 들어, 두 유지 관리 기간에 겹치는 패치 적용 시간이 지정되어 있는 경우 둘 중 하나를 제거하거나 수정합니다. 유지 관리 기간에는 하나의 패치 적용 작업이 지정되어 있지만 패치 정책에는 같은 시간에 다른 패치 적용 작업이 지정되어 있으면 유지 관리 기간에서 작업을 제거하는 것이 좋습니다.
이 시나리오에서 충돌하는 패치 적용 작업이 실패의 원인이 아니었다고 판단되면 AWS Support에 문의하는 것이 좋습니다.
문제: 예기치 않은 패치 규정 준수 결과
문제: Scan
작업 후에 생성된 패치 규정 준수 세부 정보를 검토할 때, 결과에 패치 기준선에 설정된 규칙에 부합하지 않는 정보가 포함되어 있습니다. 패치 기준선의 Rejected patches(거부된 패치) 목록에 추가한 예외가 Missing
으로 표시되는 경우를 예로 들 수 있습니다. 또는 패치 기준선에서 Critical
패치만 지정했는데도 Important
로 분류된 패치가 누락된 것으로 표시됩니다.
원인: Patch Manager는 현재 다양한 Scan
작업 실행 방법을 지원합니다.
-
Quick Setup에서 구성된 패치 정책
-
Quick Setup에서 구성된 호스트 관리 옵션
-
패치
Scan
또는Install
태스크를 실행하기 위한 유지 관리 기간 -
온디맨드 Patch now(지금 패치) 작업
Scan
작업이 실행되면 가장 최근 검사의 규정 준수 세부 정보를 덮어씁니다. Scan
작업을 실행하도록 설정된 방법이 2가지 이상이고, 해당 방법에서 서로 다른 규칙의 서로 다른 패치 기준선을 사용하는 경우 패치 규정 준수 결과가 달라집니다.
해결 방법: 예기치 않은 패치 규정 준수 결과를 방지하려면 Patch
Manager Scan
작업을 실행할 때 한 번에 한 가지 방법만 사용하는 것이 좋습니다. 자세한 내용은 의도치 않은 패치 규정 준수 데이터 덮어쓰기 방지 단원을 참조하십시오.
Linux에서 AWS-RunPatchBaseline
실행 시 오류
주제
- 문제: '해당 파일 또는 디렉터리가 없음(No such file or directory)' 오류
- 문제: '다른 프로세스가 yum 잠금을 획득함(another process has acquired yum lock)' 오류
- 문제: '권한 거부됨/명령 실행 실패(Permission denied / failed to run commands)'오류
- 문제: '페이로드를 다운로드할 수 없음(Unable to download payload)' 오류
- 문제: '지원되지 않는 패키지 관리자 및 python 버전 조합(unsupported package manager and python version combination)' 오류
- 문제: Patch Manager가 특정 패키지를 제외하도록 지정된 규칙을 적용하지 않음
- 문제: 패치가 실패하고 Patch Manager가 TLS에 대한 서버 이름 표시 확장을 사용할 수 없다고 보고함
- 문제: Patch Manager가 '시도할 미러가 더 이상 없음(No more mirrors to try)' 보고
- 문제: 'curl에서 반환된 오류 코드는 23'이라는 메시지와 함께 패치 적용 실패
- 문제: 'rpm 패키지 압축 해제 오류…’라는 메시지와 함께 패치 적용 실패
- 문제: '패키지를 다운로드하는 동안 오류가 발생했습니다'라는 메시지와 함께 패치 적용 실패
- 문제: '퍼블릭 키를 사용할 수 없어 다음 서명을 확인할 수 없습니다'라는 메시지와 함께 패치 적용 실패
- 문제: 'NoMoreMirrorsRepoError' 메시지와 함께 패치 적용 실패
- 문제: '페이로드를 다운로드할 수 없음' 메시지와 함께 패치 적용 실패
- 문제: '설치 오류: dpkg: 오류: dpkg 프런트엔드가 다른 프로세스에 의해 잠겼습니다'라는 메시지와 함께 패치 적용 실패
- 문제: 'dpkg가 중단되었습니다' 오류로 Ubuntu Server의 패치 적용 실패
- 문제: 패키지 관리자 유틸리티를 통해 패키지 종속성을 해결할 수 없음
문제: '해당 파일 또는 디렉터리가 없음(No such file or directory)' 오류
문제: AWS-RunPatchBaseline
실행 시 다음 오류 중 하나와 함께 패치가 실패합니다.
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
원인 1: AWS-RunPatchBaseline
을 실행하는 2개의 명령이 동일한 관리형 노드에서 동시에 실행되었습니다. 이로 인해 임시 file patch-baseline-operations*
가 제대로 생성 또는 액세스되지 않는 경쟁 조건이 발생합니다.
원인 2: /var
디렉터리의 저장 공간이 부족합니다.
해결 방법 1: 유지 관리 기간에 동일한 우선순위 수준으로 AWS-RunPatchBaseline
을 실행하고 동일한 대상 ID에서 실행되는 둘 이상의 Run Command 태스크가 없는지 확인합니다. 이 경우 우선순위를 다시 지정합니다. Run Command는 AWS Systems Manager의 기능입니다.
해결 방법 2: 한 번에 하나의 유지 관리 기간만 동일한 대상 및 동일한 일정에서 AWS-RunPatchBaseline
을 사용하는 Run Command 태스크를 실행하고 있는지 확인합니다. 이 경우 일정을 변경합니다.
해결 방법 3: 하나의 State Manager 연결만 동일한 일정으로 AWS-RunPatchBaseline
을 실행하고 동일한 관리형 노드를 대상으로 하는지 확인합니다. State Manager는 AWS Systems Manager의 기능입니다.
해결 방법 4: 업데이트 패키지를 위해 /var
디렉터리에 충분한 저장 공간을 확보합니다.
문제: '다른 프로세스가 yum 잠금을 획득함(another process has acquired yum lock)' 오류
문제: AWS-RunPatchBaseline
실행 시 다음 오류와 함께 패치가 실패합니다.
12/20/2019 21:41:48 root [INFO]: another process has acquired yum lock, waiting 2 s and retry.
원인: AWS-RunPatchBaseline
문서가 이미 다른 작업에서 실행 중이고 패키지 관리자 yum
프로세스를 획득한 관리형 노드에서 실행을 시작했습니다.
해결 방법: 일정에 따라 AWS-RunPatchBaseline
을 실행하는 State Manager 연결, 유지 관리 기간 태스크 또는 기타 구성이 거의 같은 시간에 동일한 관리형 노드를 대상으로 하지 않도록 합니다.
문제: '권한 거부됨/명령 실행 실패(Permission denied / failed to run commands)'오류
문제: AWS-RunPatchBaseline
실행 시 다음 오류와 함께 패치가 실패합니다.
sh: /var/lib/amazon/ssm/instanceid
/document/orchestration/commandid
/PatchLinux/_script.sh: Permission denied failed to run commands: exit status 126
원인: /var/lib/amazon/
이 noexec
권한으로 탑재되었을 수 있습니다. 이것은 SSM Agent가 /var/lib/amazon/ssm
에 페이로드 스크립트를 다운로드하고 해당 위치에서 실행하기 때문에 문제입니다.
해결 방법: /var/log/amazon
및 /var/lib/amazon
에 대한 배타적 파티션을 구성하고 exec
권한으로 탑재했는지 확인합니다.
문제: '페이로드를 다운로드할 수 없음(Unable to download payload)' 오류
문제: AWS-RunPatchBaseline
실행 시 다음 오류와 함께 패치가 실패합니다.
Unable to download payload: https://s3.amzn-s3-demo-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 Simple Storage Service(Amazon S3) 버킷에 액세스하는 데 필요한 권한이 관리형 노드에 없습니다.
해결 방법: S3 엔드포인트에 연결할 수 있도록 네트워크 구성을 업데이트합니다. 자세한 내용은 AWS 관리형 S3 버킷과 SSM Agent 통신의 Patch Manager에 대한 S3 버킷에 대한 필수 액세스에 대한 정보를 참조하세요.
문제: '지원되지 않는 패키지 관리자 및 python 버전 조합(unsupported package manager and python version combination)' 오류
문제: AWS-RunPatchBaseline
실행 시 다음 오류와 함께 패치가 실패합니다.
An unsupported package manager and python version combination was found. Apt requires Python3 to be installed. failed to run commands: exit status 1
원인: Debian Server, Raspberry Pi OS 또는 Ubuntu Server 인스턴스에 지원되는 python3 버전이 설치되어 있지 않습니다.
솔루션: Debian Server, Raspberry Pi OS 및 Ubuntu Server 관리형 노드에 필요한 지원되는 python3 버전(3.0~3.10)을 서버에 설치합니다.
문제: Patch Manager가 특정 패키지를 제외하도록 지정된 규칙을 적용하지 않음
문제: /etc/yum.conf
파일에 exclude=
형식으로 지정하여 특정 패키지를 제외하려고 했지만 Patch Manager package-name
Install
작업 중에 제외되지 않았습니다.
원인: Patch Manager는 /etc/yum.conf
파일에 지정된 제외를 포함하지 않습니다.
해결 방법: 특정 패키지를 제외하려면 사용자 정의 패치 기준을 생성하고 설치하지 않으려는 패키지를 제외하는 규칙을 생성합니다.
문제: 패치가 실패하고 Patch Manager가 TLS에 대한 서버 이름 표시 확장을 사용할 수 없다고 보고함
문제: 패치 작업이 다음 메시지를 표시합니다.
/var/log/amazon/ssm/patch-baseline-operations/urllib3/util/ssl_.py:369: SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This might cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
원인: 이 메시지는 오류를 나타내지 않습니다. 대신 운영 체제와 함께 배포된 이전 버전의 Python이 TLS 서버 이름 표시를 지원하지 않는다는 경고입니다. Systems Manager 패치 페이로드 스크립트는 SNI를 지원하는 AWS API에 연결할 때 이 경고를 표시합니다.
해결 방법: 이 메시지가 보고될 때 패치 실패 문제를 해결하려면 stdout
및 stderr
파일의 내용을 검토합니다. 이러한 파일을 S3 버킷 또는 Amazon CloudWatch Logs 저장하도록 패치 기준선을 구성하지 않은 경우 Linux 관리형 노드의 다음 위치에서 파일을 찾을 수 있습니다.
/var/lib/amazon/ssm/
instance-id
/document/orchestration/Run-Command-execution-id
/awsrunShellScript/PatchLinux
문제: Patch Manager가 '시도할 미러가 더 이상 없음(No more mirrors to try)' 보고
문제: 패치 작업이 다음 메시지를 표시합니다.
[Errno 256] No more mirrors to try.
원인: 관리형 노드에 구성된 리포지토리가 제대로 작동하지 않습니다. 이에 대한 가능한 원인은 다음과 같습니다.
-
yum
캐시가 손상되었습니다. -
네트워크 관련 문제로 인해 리포지토리 URL에 연결할 수 없습니다.
해결 방법: Patch Manager는 관리형 노드의 기본 패키지 관리자를 사용하여 패치 작업을 수행합니다. 리포지토리가 제대로 구성되고 작동하는지 다시 확인합니다.
문제: 'curl에서 반환된 오류 코드는 23'이라는 메시지와 함께 패치 적용 실패
문제: 다음과 비슷한 오류로 AWS-RunPatchBaseline
을 사용하는 패치 적용 작업이 실패합니다.
05/01/2023 17:04:30 root [ERROR]: Error code returned from curl is 23
원인: 파일 시스템에 쓰는 데 필요한 권한이 시스템에서 사용 중인 curl 도구에 없습니다. 이는 패키지 관리자의 기본 curl 도구가 다른 버전(예: snap으로 설치된 도구)으로 대체된 경우에 발생할 수 있습니다.
솔루션: 다른 버전이 설치되었을 때 패키지 관리자가 제공한 curl 버전이 제거되었다면 다시 설치합니다.
여러 curl 버전을 설치된 상태로 유지해야 하는 경우 패키지 관리자와 연결된 버전이 PATH
변수에 나열된 첫 번째 디렉터리에 있는지 확인합니다. echo $PATH
명령을 실행하여 시스템에서 실행 파일을 검사한 디렉터리의 현재 순서를 참조하면 이를 확인할 수 있습니다.
문제: 'rpm 패키지 압축 해제 오류…’라는 메시지와 함께 패치 적용 실패
문제: 다음과 비슷한 오류로 패치 적용 작업이 실패합니다.
Error : Error unpacking rpm package python-urllib3-1.25.9-1.amzn2.0.2.noarch python-urllib3-1.25.9-1.amzn2.0.1.noarch was supposed to be removed but is not! failed to run commands: exit status 1
원인 1: 특정 패키지가 여러 패키지 설치 관리자에 있으면(예: pip
및 yum
둘 다 또는 dnf
) 기본 패키지 관리자를 사용할 때 충돌이 발생할 수 있습니다.
pip
, yum
및 dnf
에서 찾을 수 있는 일반적인 예가 urllib3
패키지에서 발생합니다.
원인 2: python-urllib3
패키지가 손상되었습니다. rpm
이 이전에 yum
또는 dnf
를 통해 설치된 패키지였던 이후에 pip
을 통해 패키지 파일이 설치되거나 업데이트되었으면 이 문제가 발생할 수 있습니다.
솔루션: 기본 패키지 관리자(yum
또는 dnf
)에서만 패키지가 유지되도록 sudo pip uninstall urllib3
명령을 실행하여 pip에서 python-urllib3
패키지를 제거합니다.
문제: '패키지를 다운로드하는 동안 오류가 발생했습니다'라는 메시지와 함께 패치 적용 실패
문제: 패치를 적용하는 동안 다음과 비슷한 오류가 표시됩니다.
YumDownloadError: [u'Errors were encountered while downloading packages.', u'libxml2-2.9.1-6.el7_9.6.x86_64: [Errno 5] [Errno 12] Cannot allocate memory', u'libxslt-1.1.28-6.el7.x86_64: [Errno 5] [Errno 12] Cannot allocate memory', u'libcroco-0.6.12-6.el7_9.x86_64: [Errno 5] [Errno 12] Cannot allocate memory', u'openldap-2.4.44-25.el7_9.x86_64: [Errno 5] [Errno 12] Cannot allocate memory',
원인: 이 오류는 관리형 노드에 사용할 수 있는 메모리가 부족할 때 발생할 수 있습니다.
솔루션: 스왑 메모리를 구성하거나 인스턴스를 다른 유형으로 업그레이드하여 메모리 지원을 늘립니다. 그런 다음에 새 패치 적용 작업을 시작합니다.
문제: '퍼블릭 키를 사용할 수 없어 다음 서명을 확인할 수 없습니다'라는 메시지와 함께 패치 적용 실패
문제: 다음과 비슷한 오류로 Ubuntu Server에서 패치 적용에 실패합니다.
02/17/2022 21:08:43 root [ERROR]: W:GPG error: http://repo.mysql.com/apt/ubuntu bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 467B942D3A79BD29, E:The repository ' http://repo.mysql.com/apt/ubuntu bionic
원인: GPG(GNU Privacy Guard) 키가 만료되었거나 누락되었습니다.
솔루션: GPG 키를 새로 고치거나 키를 다시 추가합니다.
예를 들어 이전에 표시된 오류를 사용하면 467B942D3A79BD29
키가 누락되었으며 추가해야 한다는 것을 알 수 있습니다. 이렇게 하려면 다음과 같은 명령 중 하나를 실행합니다.
sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 467B942D3A79BD29
또는 모든 키를 새로 고치려면 다음 명령을 실행합니다.
sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com --refresh-keys
이후에도 오류가 다시 발생하면 리포지토리를 유지 관리하는 조직에 문제를 보고하는 것이 좋습니다. 수정이 가능할 때까지 패치 적용 프로세스 중에 /etc/apt/sources.list
파일을 편집하여 리포지토리를 생략할 수 있습니다.
이렇게 하려면 편집할 sources.list
파일을 열고, 리포지토리의 줄을 찾고, 줄 시작 부분에 #
문자를 삽입하여 주석을 추가합니다. 그런 다음에 파일을 저장하고 닫습니다.
문제: 'NoMoreMirrorsRepoError' 메시지와 함께 패치 적용 실패
문제: 다음과 비슷한 오류가 표시됩니다.
NoMoreMirrorsRepoError: failure: repodata/repomd.xml from pgdg94: [Errno 256] No more mirrors to try.
원인: 소스 리포지토리에 오류가 있습니다.
솔루션: 리포지토리를 유지 관리하는 조직에 문제를 보고하는 것이 좋습니다. 오류가 수정될 때까지 운영 체제 수준에서 리포지토리를 비활성화할 수 있습니다. 이렇게 하려면 다음 명령을 실행하여 repo-name
의 값을 리포지토리 이름으로 바꿉니다.
yum-config-manager --disable
repo-name
다음은 한 예입니다.
yum-config-manager --disable pgdg94
이 명령을 실행한 후 다른 패치 적용 작업을 실행합니다.
문제: '페이로드를 다운로드할 수 없음' 메시지와 함께 패치 적용 실패
문제: 다음과 비슷한 오류가 표시됩니다.
Unable to download payload: https://s3.dualstack.eu-west-1.amazonaws.com/aws-ssm-eu-west-1/patchbaselineoperations/linux/payloads/patch-baseline-operations-1.83.tar.gz. failed to run commands: exit status 156
원인: 관리형 노드 구성에 오류가 있거나 불완전합니다.
솔루션: 관리형 노드에 다음이 구성되었는지 확인합니다.
-
보안 그룹의 아웃바운드 TCP 443 규칙.
-
NACL의 송신 TCP 443 규칙.
-
NACL의 수신 TCP 1024-65535 규칙.
-
S3 엔드포인트에 대한 연결을 제공하는 라우팅 테이블의 NAT/IGW 인스턴스에 인터넷 액세스 권한이 없으면 S3 엔드포인트와 연결을 제공합니다. 이렇게 하려면 S3 게이트웨이 엔드포인트를 VPC에서 추가하고 관리형 노드의 라우팅 테이블과 통합합니다.
문제: '설치 오류: dpkg: 오류: dpkg 프런트엔드가 다른 프로세스에 의해 잠겼습니다'라는 메시지와 함께 패치 적용 실패
문제: 다음과 비슷한 오류로 패치 적용에 실패합니다.
install errors: dpkg: error: dpkg frontend is locked by another process failed to run commands: exit status 2 Failed to install package; install status Failed
원인: 운영 체제 수준에서 관리형 노드의 다른 프로세스가 이미 패키지 관리자에서 실행되고 있습니다. 다른 프로세스를 완료하는 데 시간이 오래 걸리는 경우 Patch Manager 패치 적용 작업이 시간 초과로 실패할 수 있습니다.
솔루션: 패키지 관리자를 사용 중인 다른 프로세스가 완료된 후 새 패치 적용 작업을 실행합니다.
문제: 'dpkg가 중단되었습니다' 오류로 Ubuntu Server의 패치 적용 실패
문제: Ubuntu Server에서 다음과 비슷한 오류로 패치 적용에 실패합니다.
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
원인: 하나 이상의 패키지가 잘못 구성되었습니다.
해결 방법: 다음 단계를 수행합니다.
-
다음과 같은 명령을 한 번에 하나씩 실행하여 영향을 받는 패키지와 각 패키지의 문제를 확인합니다.
sudo apt-get check
sudo dpkg -C
dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package}\n' | grep -E ^.[^nci]
-
다음 명령을 실행하여 문제가 있는 패키지를 수정합니다.
sudo dpkg --configure -a
-
이전 명령으로 문제가 완전히 해결되지 않으면 다음 명령을 실행합니다.
sudo apt --fix-broken install
문제: 패키지 관리자 유틸리티를 통해 패키지 종속성을 해결할 수 없음
문제: 관리형 노드의 네이티브 패키지 관리자를 통해 패키지 종속성을 해결할 수 없어 패치 적용에 실패합니다. 다음 오류 메시지 예제는 yum
을 패키지 관리자로 사용하는 운영 체제의 이 오류 유형을 나타냅니다.
09/22/2020 08:56:09 root [ERROR]: yum update failed with result code: 1, message: [u'rpm-python-4.11.3-25.amzn2.0.3.x86_64 requires rpm = 4.11.3-25.amzn2.0.3', u'awscli-1.18.107-1.amzn2.0.1.noarch requires python2-botocore = 1.17.31']
원인: Linux 운영 체제의 Patch Manager에서는 시스템의 네이티브 패키지 관리자를 사용하여 패치 적용 작업을 실행합니다(예: yum
, dnf
, apt
및 zypper
). 애플리케이션에서는 필요에 따라 종속 패키지를 자동으로 감지, 설치, 업데이트 또는 제거합니다. 그러나 다음과 같은 일부 조건에서는 패키지 관리자가 종속성 작업을 완료하지 못할 수 있습니다.
-
충돌하는 리포지토리가 운영 체제에 여러 개 구성되어 있습니다.
-
네트워크 관련 문제로 인해 원격 리포지토리 URL에 액세스할 수 없습니다.
-
리포지토리에서 잘못된 아키텍처에 대한 패키지를 찾았습니다.
솔루션: 아주 다양한 사유의 종속성 문제 때문에 패치 적용에 실패할 수 있습니다. 따라서 AWS Support에 문의하여 문제 해결 도움을 받는 것이 좋습니다.
Windows Server에서 AWS-RunPatchBaseline
실행 시 오류
주제
문제: 일치하지 않는 제품군/제품 페어
문제: Systems Manager 콘솔에서 패치 기준을 생성할 때 제품군 및 제품을 지정합니다. 예를 들면 다음을 선택할 수 있습니다.
-
제품군:
Office
제품:
Office 2016
원인: 일치하지 않는 제품군/제품 페어로 패치 기준을 만들려고 하면 오류 메시지가 표시됩니다. 가능한 이유는 다음과 같습니다.
-
유효한 제품군 및 제품 페어를 선택했지만 제품군 선택을 제거했습니다.
-
[사용 가능 및 일치하는 옵션(Available and matching options)] 하위 목록 대신 [폐기되었거나 일치하지 않는 옵션(Obsolete or mismatched options)] 하위 목록에서 제품을 선택했습니다.
실수로 제품 [사용되지 않거나 일치하지 않는 옵션(Obsolete or mismatched options)] 하위 목록의 항목이 SDK 또는 AWS Command Line Interface(AWS CLI)
create-patch-baseline
명령을 통해 입력되었을 수 있습니다. 오타가 있거나 제품이 잘못된 제품군에 할당되었다는 뜻일 수 있습니다. 이전 패치 기준에 지정되었지만 Microsoft에서 제공하는 패치가 없는 경우에도 [사용되지 않거나 일치하지 않는 옵션(Obsolete or mismatched options)] 하위 목록에 제품이 포함됩니다.
해결 방법: 콘솔에서 이 문제를 방지하려면 항상 [현재 사용 가능한 옵션(Currently available options)] 하위 목록에서 옵션을 선택합니다.
AWS CLI에서 describe-patch-properties
명령을 사용하거나 DescribePatchProperties
명령을 사용하여 사용 가능한 패치가 있는 제품을 볼 수도 있습니다.
문제: AWS-RunPatchBaseline
출력에서 HRESULT
(Windows Server) 반환
문제: 다음과 같은 오류가 표시됩니다.
----------ERROR------- Invoke-PatchBaselineOperation : Exception Details: An error occurred when attempting to search Windows Update. Exception Level 1: Error Message: Exception from HRESULT: 0x80240437 Stack Trace: at WUApiLib.IUpdateSearcher.Search(String criteria).. (Windows updates) 11/22/2020 09:17:30 UTC | Info | Searching for Windows Updates. 11/22/2020 09:18:59 UTC | Error | Searching for updates resulted in error: Exception from HRESULT: 0x80240437 ----------ERROR------- failed to run commands: exit status 4294967295
원인: 이 출력은 기본 Windows Update API가 패치 작업을 실행할 수 없음을 나타냅니다.
해결 방법: 다음 microsoft.com 항목에서 HResult
코드를 확인하여 오류 해결을 위한 문제 해결 단계를 식별합니다.
문제: 관리형 노드에 Windows 업데이트 카탈로그 또는 WSUS에 대한 액세스 권한이 없습니다.
문제: 다음과 같은 오류가 표시됩니다.
Downloading PatchBaselineOperations PowerShell module from https://s3.aws-api-domain
/path_to_module
.zip to C:\Windows\TEMP\Amazon.PatchBaselineOperations-1.29.zip. Extracting PatchBaselineOperations zip file contents to temporary folder. Verifying SHA 256 of the PatchBaselineOperations PowerShell module files. Successfully downloaded and installed the PatchBaselineOperations PowerShell module. Patch Summary for PatchGroup : BaselineId : Baseline : null SnapshotId : RebootOption : RebootIfNeeded OwnerInformation : OperationType : Scan OperationStartTime : 1970-01-01T00:00:00.0000000Z OperationEndTime : 1970-01-01T00:00:00.0000000Z InstalledCount : -1 InstalledRejectedCount : -1 InstalledPendingRebootCount : -1 InstalledOtherCount : -1 FailedCount : -1 MissingCount : -1 NotApplicableCount : -1 UnreportedNotApplicableCount : -1 EC2AMAZ-VL3099P - PatchBaselineOperations Assessment Results - 2020-12-30T20:59:46.169 ----------ERROR------- Invoke-PatchBaselineOperation : Exception Details: An error occurred when attempting to search Windows Update. Exception Level 1: Error Message: Exception from HRESULT: 0x80072EE2 Stack Trace: at WUApiLib.IUpdateSearcher.Search(String criteria) at Amazon.Patch.Baseline.Operations.PatchNow.Implementations.WindowsUpdateAgent.SearchForUpdates(String searchCriteria) At C:\ProgramData\Amazon\SSM\InstanceData\i-02573cafcfEXAMPLE
\document\orchestration\3d2d4864-04b7-4316-84fe-eafff1ea58 e3\PatchWindows\_script.ps1:230 char:13 + $response = Invoke-PatchBaselineOperation -Operation Install -Snapsho ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (Amazon.Patch.Ba...UpdateOperation:InstallWindowsUpdateOperation) [Inv oke-PatchBaselineOperation], Exception + FullyQualifiedErrorId : Exception Level 1: Error Message: Exception Details: An error occurred when attempting to search Windows Update. Exception Level 1: Error Message: Exception from HRESULT: 0x80072EE2 Stack Trace: at WUApiLib.IUpdateSearcher.Search(String criteria) at Amazon.Patch.Baseline.Operations.PatchNow.Implementations.WindowsUpdateAgent.SearchForUpdates(String searc ---Error truncated----
원인: 이 오류는 Windows Update 구성 요소, Windows Update 카탈로그 또는 Windows Server Update Services(WSUS)에 대한 연결 부족과 관련이 있을 수 있습니다.
해결 방법: 관리형 노드가 인터넷 게이트웨이, NAT 게이트웨이 또는 NAT 인스턴스를 통해 Microsoft Update 카탈로그HResult 0x80072EE2
의 다른 잠재적 원인을 확인합니다. 이는 운영 체제 수준 문제를 나타낼 수 있습니다.
문제: PatchBaselineOperations PowerShell 모듈을 다운로드할 수 없음
문제: 다음과 같은 오류가 표시됩니다.
Preparing to download PatchBaselineOperations PowerShell module from S3. Downloading PatchBaselineOperations PowerShell module from https://s3.aws-api-domain
/path_to_module
.zip to C:\Windows\TEMP\Amazon.PatchBaselineOperations-1.29.zip. ----------ERROR------- C:\ProgramData\Amazon\SSM\InstanceData\i-02573cafcfEXAMPLE
\document\orchestration\aaaaaaaa-bbbb-cccc-dddd-4f6ed6bd5514\ PatchWindows\_script.ps1 : An error occurred when executing PatchBaselineOperations: Unable to connect to the remote server + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,_script.ps1 failed to run commands: exit status 4294967295
해결 방법: Amazon Simple Storage Service(Amazon S3)에 대한 관리형 노드 연결 및 권한을 확인합니다. 관리형 노드의 AWS Identity and Access Management(IAM) 역할이 AWS 관리형 S3 버킷과 SSM Agent 통신에 언급된 최소 권한을 사용해야 합니다. 노드는 Amazon S3 게이트웨이 엔드포인트, NAT 게이트웨이 또는 인터넷 게이트웨이를 통해 Amazon S3 엔드포인트와 통신해야 합니다. AWS Systems ManagerSSM Agent (SSM Agent)에 대한 VPC 엔드포인트 요구 사항에 대한 자세한 내용은 Systems Manager용 VPC 엔드포인트를 사용하여 EC2 인스턴스의 보안 개선 섹션을 참조하세요.
문제: 패치 누락
문제: AWS-RunPatchbaseline
이 성공적으로 완료되었지만 일부 누락된 패치가 있습니다.
다음은 몇 가지 일반적인 원인과 해결 방법입니다.
원인 1: 기준이 유효하지 않습니다.
해결 방법 1: 이것이 원인인지 확인하려면 다음 절차를 따릅니다.
AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/
)을 엽니다. 탐색 창에서 Run Command를 선택합니다.
-
[명령 기록(Command history)] 탭을 선택하고 기준을 확인할 명령을 선택합니다.
-
패치가 누락된 관리형 노드를 선택합니다.
-
[1단계 - 출력(Step 1 - Output)]을 선택하고
BaselineId
값을 찾습니다. -
할당된 패치 기준 구성, 즉 운영 체제, 제품 이름, 분류 및 패치 기준의 심각도를 확인합니다.
-
Microsoft Update 카탈로그
로 이동합니다. -
Microsoft 기술 자료(KB) 문서 ID(예: KB3216916)를 검색합니다.
-
제품(Product) 아래의 값이 관리형 노드의 값과 일치하는지 확인하고 해당 제목(Title)을 선택합니다. 새로운 [세부 정보 업데이트(Update Details)] 창이 열립니다.
-
[개요(Overview)] 탭의 [분류(classification)] 및 [MSRC 심각도(MSRC severity)]가 이전에 찾은 패치 기준 구성과 일치해야 합니다.
원인 2: 패치가 교체되었습니다.
해결 방법 2: 이것이 맞는지 확인하려면 다음 절차를 따릅니다.
-
Microsoft Update 카탈로그
로 이동합니다. -
Microsoft 기술 자료(KB) 문서 ID(예: KB3216916)를 검색합니다.
-
제품(Product) 아래의 값이 관리형 노드의 값과 일치하는지 확인하고 해당 제목(Title)을 선택합니다. 새로운 [세부 정보 업데이트(Update Details)] 창이 열립니다.
-
[패키지 세부 정보(Package Details)] 탭으로 이동합니다. [이 업데이트는 다음 업데이트로 대체되었습니다.(This update has been replaced by the following updates:)] 헤더 아래에서 항목을 찾습니다.
원인 3: WSUS 및 Window 온라인 업데이트는 Microsoft에서 독립적인 릴리스 채널로 처리하기 때문에 동일한 패치의 KB 번호가 다를 수 있습니다.
해결 방법 3: 패치 적격성을 확인합니다. WSUS에서 패키지를 사용할 수 없는 경우 OS 빌드 14393.3115
AWS Support 문의
이 섹션이나 AWS re:Post
AWS Support에 연락하기 전에 다음 항목을 수집합니다.
-
Run Command 명령 ID, 유지 관리 기간 ID 또는 Automation 실행 ID
-
Windows Server 관리형 노드를 위해서는 다음 항목도 수집합니다.
-
패치 설치 방법ㅂ의 [Windows] 탭에 설명된
%PROGRAMDATA%\Amazon\PatchBaselineOperations\Logs
-
Windows 업데이트 로그: Windows Server 2012 R2 이상의 경우
%windir%/WindowsUpdate.log
를 사용합니다. Windows Server 2016 이상에서는%windir%/WindowsUpdate.log
를 사용하기 전에 먼저 PowerShell 명령Get-WindowsUpdateLog
를 실행합니다.
-
-
Linux 관리형 노드를 위해서는 다음 항목도 수집합니다.
-
디렉터리
/var/lib/amazon/ssm/
의 내용instance-id
/document/orchestration/Run-Command-execution-id
/awsrunShellScript/PatchLinux
-