내용으로 건너뛰기

EC2 인스턴스에서 SUSE 운영 체제를 업그레이드할 때 오류가 발생하면 어떻게 해결합니까?

4분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 SUSE 운영 체제(OS)를 업그레이드하려고 했는데 오류가 발생했습니다.

해결 방법

인스턴스 상태 확인이 실패했는지 확인

인스턴스 상태 확인 실패에 관한 자세한 내용은 운영 체제 문제로 인해 인스턴스 상태 확인에 실패한 EC2 Linux 인스턴스 문제를 어떻게 해결합니까?를 참조하십시오.

susecloud-repocheck 스크립트를 사용하여 사소한 문제를 자동으로 진단하고 수정합니다.

susecloud-repocheck 스크립트는 OS 리포지토리 검사를 수행하여 인스턴스가 다음 클라우드 컴퓨팅 서비스에 대하여 SUSE 업데이트 인프라에 등록하지 못하도록 방지하는 문제를 해결합니다.

  • Microsoft Azure
  • AWS
  • Google Cloud Platform(GCP)
  • Pay-as-you-go(PAYG) 온디맨드 인스턴스

자세한 내용은 SUSE GitHub 리포지토리에서 susecloud-repocheck를 참조하십시오.

스크립트를 실행하려면 다음 명령을 사용합니다.

$ python3 <(curl -sL https://raw.githubusercontent.com/SUSE/susecloud-repocheck/main/sc-repocheck.py)

스크립트는 sc-repocheck_<YYMMDD_hhmmss>.tar.xz라는 /var/log/ 디렉터리에 로그를 만듭니다.

수동으로 등록을 확인하고 업그레이드 실패를 해결합니다.

billingProducts 또는 marketplaceProductCodes 인스턴스 코드 확인

PAYG vanilla SUSE Linux Enterprise Server(SLES)의 경우, 인스턴스의 billingProducts 코드를 확인합니다. SAP 애플리케이션용 PAYG SLES의 경우 marketplaceProductCodes 코드를 확인합니다.

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

# /usr/bin/curl --noproxy '*' -w "\n" -s -H "X-aws-ec2-metadata-token: $(curl --noproxy '*' -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 300")" http://169.254.169.254/latest/dynamic/instance-identity/document | grep -E 'billingProducts|marketplaceProductCodes'

명령에 대하여 다음과 같은 출력을 얻게 됩니다.

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

-또는-

"marketplaceProductCodes" : [ "***********************" ],

/etc/hosts 파일에서 SMT 등록 항목 확인

/etc/hosts 파일에서 # Added by SMT registration do not remove, retain comment as well 줄 다음의 항목을 확인합니다.

참고: 한 AWS 리전 내에 SUSE 퍼블릭 클라우드 업데이트 서버가 둘 이상 있습니다. 자세한 내용은 SUSE Public Cloud Solutions 웹 사이트에서 AWS 리전의 업데이트 서버 IP 주소 목록을 참조하십시오.

현재 등록 상태를 확인하려면 다음 명령을 실행합니다.

# SUSEConnect -s

앞선 명령 출력에서 Status 파라미터가 Registered 또는 Not Registered인지 확인합니다. 출력이 Not Registered인 경우, 인스턴스를 다시 등록합니다.

인스턴스를 다시 등록하려면 다음 명령을 실행합니다.

# registercloudguest --force-new

이전 등록에서 항목을 제거하려면 다음 명령을 실행합니다.

# registercloudguest --clean

현재 등록 상태를 확인하려면 다음 명령을 실행합니다.

# SUSEConnect -s

등록에 실패하면 /var/log/cloudregister의 로그를 검토하여 실패의 원인을 파악합니다.

로그의 오류 예시:

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

/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

등록 오류 문제 해결

등록 오류 문제를 해결하려면 다음 단계를 완료하십시오.

  1. 필요한 cloud-regionsrv-client 및 관련 종속성 패키지를 OS에 설치했는지 확인하려면 다음 명령을 실행합니다.
    # rpm -qa | grep -E 'cloud-regionsrv-client|cloud-regionsrv-client-plugin-ec2|regionServiceClientConfigEC2|SUSEConnect|suseconnect-ng|python3-ec2metadata|python3-dnspython|python3-lxml|python3-cssselect|python3-M2Crypto|python3-zypp-plugin|libzypp|ruby-common'
    출력 예시:
    libzypp-17.31.20-150400.3.40.1.x86_64suseconnect-ng-1.6.0~git0.31371c8-150400.3.22.1.x86_64
    python3-zypp-plugin-0.6.3-150000.4.2.1.noarch
    python3-cssselect-1.0.3-150000.3.3.1.noarch
    python3-M2Crypto-0.38.0-150400.7.64.x86_64
    python3-lxml-4.7.1-150200.3.10.1.x86_64
    regionServiceClientConfigEC2-4.1.1-150000.3.27.1.noarch
    ruby-common-2.1-3.15.noarch
    python3-ec2metadata-5.0.0-150000.3.12.1.noarch
    cloud-regionsrv-client-10.1.6-150000.6.105.1.noarch
    cloud-regionsrv-client-plugin-ec2-1.0.4-150000.6.105.1.noarch
    python3-dnspython-1.15.0-150000.3.2.1.noarch
    패키지가 오래되었거나 누락되었고 운영 체제에서 Zypper에 액세스할 수 없는 경우 오프라인으로 업그레이드를 완료합니다. 오프라인으로 업그레이드하려면 다른 작업 호스트에서 Zypper를 사용하여 rpm 패키지를 다운로드하고 rpm을 작동하지 않는 호스트로 전송합니다. 그런 다음 rpm 패키지의 Zypper 설치를 수행합니다.
  2. 누락된 리포지토리를 식별합니다.
  3. SUSE 인스턴스에 소프트웨어 리포지토리가 없는 경우 다음 명령을 실행하여 사용 가능한 모든 리포지토리에 새 등록을 강제 적용합니다.
    # registercloudguest --force-new
    # SUSEConnect --list-extensions
    # zypper lr --uri

SUSE를 사용하여 강제 다시 등록

그래도 문제가 발생하는 경우, 소프트웨어 리포지토리가 없는 AWS 또는 Azure SUSE 클라우드 인스턴스를 참조하여 SUSE 웹 사이트에서 강제 다시 등록합니다. 이 방법은 Amazon EC2의 PAYG 인스턴스에만 해당합니다. 이 방법은 Bring Your Own Subscription(BYOS) 인스턴스에서는 효과가 없습니다.

재설정하고 다시 등록하려면 다음 명령을 실행합니다.

# rm /etc/SUSEConnect
# rm -f /etc/zypp/{repos,services,credentials}.d/*
# rm -f /usr/lib/zypp/plugins/services/*
# sed -i '/^# Added by SMT reg/,+1d' /etc/hosts
# /usr/sbin/registercloudguest --force-new

등록을 확인하려면 다음 명령을 실행합니다.

# SUSEConnect -s
# zypper lr --uri

패키지 업데이트

패키지가 오래되면 인스턴스가 SUSE 업데이트 인프라와 통신하지 못합니다. 이 문제를 해결하려면 SUSE 웹 사이트에서 오래된 패키지로 인해 클라우드 인스턴스 리포지토리가 실패함을 참조하십시오.

관련 정보

Amazon EC2의 SUSE Linux Enterprise Server(SLES) FAQ

AWS 공식업데이트됨 6달 전
1 댓글

This article was reviewed and updated on 2026-02-20.

전문가

답글을 게시함 13일 전