EC2 인스턴스에서 SUSE 운영 체제를 업그레이드하는 동안 발생하는 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스의 SUSE 운영 체제(OS)를 업그레이드하고 있습니다. 업그레이드 중에 인스턴스 상태 확인 실패, 등록 취소된 OS 또는 zypper 명령 실패와 같은 문제가 발생했습니다.

해결 방법

인스턴스 상태 확인 실패를 확인

OS 업그레이드 후 인스턴스 상태 확인에 실패하는 경우 내 EC2 Linux 인스턴스에서 운영 체제 문제로 인해 인스턴스 상태 확인에 실패했습니다. 이 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

등록 실패를 자동으로 확인(관리형 인스턴스만 해당)

인스턴스가 AWS Systems Manager 콘솔의 관리형 인스턴스인 경우 AWSSupport-TroubleshootSUSERegistration 자동화 문서를 실행하세요. AWSSupport-TroubleshootSUSERegistration 자동화 문서는 업그레이드 실패의 근본 원인을 파악하는 데 도움이 됩니다. 자세한 내용은 SUSE를 실행하는 EC2 인스턴스를 SUSE 업데이트 인프라에 등록하여 패키지를 설치하거나 업데이트할 수 없는 이유가 무엇인가요?를 참조하세요.

등록 실패를 수동으로 확인

관리형 인스턴스가 아닌 인스턴스의 경우 다음 항목을 확인하세요:

인스턴스 등록을 위해 지정된 두 가지 주요 전제 조건은 다음과 같습니다:

  • 인스턴스 billingProducts 또는 marketplaceProductCodes 코드.
  • 발신 연결 IP 주소는 AWS IP 범위에 속해야 합니다.

1.    다음 명령을 실행하여 billingProducts 또는 marketplaceProductCodes 코드를 확인합니다:

# curl -s http://169.254.169.254/latest/dynamic/instance-identity/document

다음 명령의 샘플 출력은 다음과 같습니다:

 billingProducts" : [ "bp-********" ]

2.    /etc/hosts 파일에서 SMT 등록 항목을 확인합니다. # Added by SMT registration do not remove, retain comment as well 줄 뒤에 있는 항목을 찾습니다.

각 AWS 리전에는 서로 다른 SMT 서버가 있습니다. pint 도구를 사용하지 않고 지역의 SMT 서버 IP 주소를 찾으려면 susepubliccloudinfo.suse.com 웹사이트에서 SMT 서버 IP 주소의 목록을 참조하세요.

다음 명령을 실행하여 등록 상태를 확인합니다:

# SUSEConnect -s

위 명령 출력에서 상태 파라미터가 등록됨 또는 등록되지 않음인지 확인합니다. 출력이 등록되지 않음인 경우 인스턴스를 다시 등록해 보세요.

다시 등록하려면 이전 등록을 제거하는 것이 가장 좋습니다. 다음 명령을 실행하여 자격 증명 및 리포지토리를 정리합니다:

SUSEConnect --de-register
SUSEConnect --cleanup
rm -f /etc/SUSEConnect
rm -rf /etc/zypp/credentials.d/*
rm -rf /etc/zypp/repos.d/*
rm -f /etc/zypp/services.d/*

또한 /etc/hosts 파일에서 이전 등록을 통해 추가한 SMT 항목을 제거합니다. 그렇지 않으면 새 등록으로 인해 여러 SMT 항목이 생성됩니다. 다음 항목을 삭제하거나 주석 처리합니다:

# vi /etc/hosts

# Added by SMT registration do not remove, retain comment as well
54.246.90.215 smt-ec2.susecloud.net smt-ec2

항목을 정리한 후 다음 명령을 실행하여 인스턴스를 다시 등록합니다:

# registercloudguest --force-new
# SUSEConnect -s

등록에 실패하면 /var/log/cloudregister의 로그를 분석하여 실패 원인을 파악하세요. 다음은 로그의 오류 예시입니다:

SUSEConnect error: Errno::ENOSPC: No space left on device

일반적인 등록 오류 문제 해결

1.    다음 명령을 실행하여 cloud-regionsrv-client 버전이 9.0.0 이상인지 확인합니다:

rpm -qa | grep cloud-regionsrv-client

다음은 위 명령의 샘플입니다:

cloud-regionsrv-client-9.0.3-52.16.1
cloud-regionsrv-client-plugin-ec2-1.0.0-52.16.1

다음 명령을 실행하여 패키지를 업데이트합니다:

# zypper update cloud-regionsrv-client

2.    다음 명령을 실행하여 필요한 모든 패키지가 OS에 있는지 확인합니다:

# rpm -qa | grep -iE "cloud-regionsrv-client|regionServiceClientConfigEC2|ec2metadata|SUSEConnect|libzypp|ruby-common"

다음은 위 명령의 샘플 출력입니다:

libzypp-17.31.8-150400.3.14.1.x86_64
python3-ec2metadata-4.0.0-150000.3.9.1.noarch
ruby-common-2.1-3.15.noarch
suseconnect-ng-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
libsuseconnect-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
suseconnect-ruby-bindings-1.0.0~git0.faee7c196dc1-150400.3.7.3.x86_64
regionServiceClientConfigEC2-4.1.0-150000.3.24.1.noarch
cloud-regionsrv-client-10.0.8-150000.6.86.1.noarch
cloud-regionsrv-client-plugin-ec2-1.0.2-150000.6.86.1.noarch

패키지가 오래되었거나 누락되었고 운영 체제에서 zypper에 액세스할 수 없는 경우 오프라인으로 업그레이드를 완료합니다. 자세한 내용은 suse.com 웹사이트의 퍼블릭 클라우드 인프라 업데이트를 참조하세요. 퍼블릭 클라우드 인프라 업데이트 문서에는 업그레이드에 필요한 모듈과 최신 등록 패키지가 포함되어 있습니다:

# wget --no-check-certificate https://52.15.49.139/late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# sha1sum late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# tar -xf late_instance_offline_update_ec2_<arch>_<slebase>.tar.gz
# cd <arch>
# zypper --no-refresh --no-remote --non-interactive in *.rpm

3.    누락된 리포지토리를 식별합니다.

SUSE 인스턴스에 소프트웨어 리포지토리가 없는 경우 AWS 또는 Azure SUSE 클라우드 인스턴스의 누락된 소프트웨어 리포지토리를 참조하여 사용 가능한 모든 리포지토리를 강제로 새로 등록하세요.

관련 정보

Amazon EC2의 SUSE Linux Enterprise Server(SLES) FAQ

AWS 공식
AWS 공식업데이트됨 10달 전