차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| rhel_9_to_10_leapp_upgrade [2025/05/28 01:31] – 만듦 koov | rhel_9_to_10_leapp_upgrade [2025/05/28 01:34] (현재) – koov | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== RHEL 9 to 10 leapp upgrade ====== | ====== RHEL 9 to 10 leapp upgrade ====== | ||
| + | * https:// | ||
| - | 이 문서는 Red Hat Enterprise Linux (RHEL) 9 시스템을 RHEL 10으로 인플레이스(in-place) 업그레이드하는 과정을 요약합니다. Leapp 유틸리티를 사용한 업그레이드 절차, 준비 사항, 실행, 후속 조치 및 문제 해결 방법을 다룹니다. | ||
| - | ===== 1. 개요 | + | ===== 사전준비사항 |
| - | Leapp 유틸리티는 RHEL 9에서 RHEL 10으로의 인플레이스 업그레이드를 지원합니다. 이 과정은 기존 시스템의 애플리케이션, | + | <WRAP prewrap> |
| + | <code bash> | ||
| + | subscription-manager repos --enable rhel-9-for-x86_64-baseos-rpms --enable rhel-9-for-x86_64-appstream-rpms | ||
| + | subscription-manager release --set 9.6 | ||
| + | dnf versionlock clear | ||
| + | dnf install leapp-upgrade | ||
| + | dnf update | ||
| + | reboot | ||
| + | </ | ||
| + | </ | ||
| - | ==== 1.1. 주요 | + | ===== 업그레이드 |
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | leapp preupgrade | ||
| + | leapp preupgrade --target < | ||
| + | </ | ||
| + | </ | ||
| - | 계획 및 준비: | + | 생성된 ''/ |
| - | 사전 업그레이드 평가: | + | <WRAP prewrap> |
| + | <code bash> | ||
| + | leapp answer --section < | ||
| + | </ | ||
| + | </ | ||
| - | 업그레이드 실행: | + | ===== Cockpit 플러그인 설치 ===== |
| + | <WRAP prewrap> | ||
| + | <code bash> | ||
| + | dnf install cockpit-leapp | ||
| + | </ | ||
| + | </ | ||
| - | 업그레이드 후 작업: 시스템 상태 확인, 불필요한 패키지 정리, 보안 설정 복원. | ||
| - | ==== 1.2. 중요 고려 사항 ==== | ||
| - | 지원되는 아키텍처: | + | ===== 업그레이드 수행 ===== |
| - | + | <WRAP prewrap> | |
| - | 부트로더: | + | <code bash> |
| - | + | leapp upgrade --target <_target_os_version_> | |
| - | 백업: 업그레이드 전 전체 시스템 백업은 필수입니다. ReaR(Relax-and-Recover) 사용 권장. [1] | + | </code> |
| - | + | </WRAP> | |
| - | 디스크 공간: /boot 파티션 최소 250MB, 루트 파일 시스템 및 기타 Leapp 관련 디렉터리(예: | + | |
| - | + | ||
| - | 미지원 구성: NetworkManager를 사용하지 않는 네트워크 구성, 타사 패키지 충돌, 특정 커널 모듈 등은 문제가 될 수 있습니다. [1] | + | |
| - | + | ||
| - | ===== 2. 업그레이드 | + | |
| - | + | ||
| - | 성공적인 업그레이드를 위해서는 철저한 계획이 필요합니다. | + | |
| - | + | ||
| - | ==== 2.1. 지원되는 업그레이드 경로 ==== | + | |
| - | + | ||
| - | 특정 RHEL 9 부 버전에서 특정 RHEL 10 부 버전으로의 업그레이드 경로를 확인해야 합니다 (예: RHEL 9.6에서 RHEL 10.0). [1] | + | |
| - | + | ||
| - | Extended Update Support (EUS) 또는 Advanced Update Support (AUS) 서브스크립션을 사용하는 경우, 해당 조건에 맞는 경로를 따라야 합니다. [1] | + | |
| - | + | ||
| - | ==== 2.2. 시스템 요구 사항 및 제한 사항 확인 ==== | + | |
| - | + | ||
| - | 디스크 공간: | + | |
| - | + | ||
| - | //boot// 파티션: 최소 250MB의 여유 공간. | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | 루트 파일 시스템: 최소 4GB의 여유 공간. | + | |
| - | + | ||
| - | 메모리: 최소 1GB RAM. | + | |
| - | + | ||
| - | 애플리케이션 호환성: 업그레이드 후 애플리케이션이 RHEL 10과 호환되는지 사전에 확인해야 합니다. 특히 RHEL 10에서 제거되거나 변경된 패키지에 의존하는 애플리케이션을 검토합니다. | + | |
| - | + | ||
| - | 커널 모듈: 사용자 정의 또는 타사 커널 모듈은 RHEL 10 커널과 호환되지 않을 | + | |
| - | + | ||
| - | 보안 소프트웨어: | + | |
| - | + | ||
| - | ===== 3. 업그레이드 준비 ===== | + | |
| - | + | ||
| - | 업그레이드 프로세스를 시작하기 전에 시스템을 적절히 준비해야 합니다. | + | |
| - | + | ||
| - | ==== 3.1. 업그레이드를 위한 RHEL 9 시스템 준비 ==== | + | |
| - | + | ||
| - | 전체 시스템 백업: ReaR 유틸리티 또는 VM 스냅샷을 사용하여 시스템을 백업합니다. [1] | + | |
| - | + | ||
| - | Red Hat 서브스크립션 확인: 유효한 Red Hat 서브스크립션이 필요합니다. | + | |
| - | # subscription-manager status | + | |
| - | 출력에서 " | + | |
| - | + | ||
| - | 필수 리포지토리 활성화: BaseOS 및 AppStream 리포지토리를 활성화합니다. 64비트 Intel 아키텍처의 예는 다음과 같습니다. 다른 아키텍처는 관련 문서를 참조하십시오. | + | |
| - | # subscription-manager repos --enable rhel-9-for-x86_64-baseos-rpms --enable rhel-9-for-x86_64-appstream-rpms | + | |
| - | CodeReady Linux Builder (Optional) 또는 Supplementary 리포지토리 활성화도 고려할 수 있습니다. | + | |
| - | + | ||
| - | 시스템 릴리스 버전 설정: 업그레이드할 소스 RHEL 9 마이너 버전으로 설정합니다 (예: 9.6). | + | |
| - | # subscription-manager release --set 9.6 | + | |
| - | 이 단계는 시스템이 정확한 패키지 세트를 기준으로 업그레이드를 시작하도록 보장하여, | + | |
| - | + | ||
| - | DNF 버전 잠금 해제: dnf versionlock 플러그인을 사용하여 특정 버전으로 패키지를 잠근 경우, 이를 해제합니다. | + | |
| - | # dnf versionlock clear | + | |
| - | + | ||
| - | 최신 Leapp 패키지 확인: 최신 leapp 및 leapp-repository 패키지(RHEL 9.6의 경우 leapp 0.19.0, leapp-repository 0.22.0 이상)가 있는지 확인합니다. leapp-repository 패키지에는 leapp-upgrade-el9toel10 RPM이 포함됩니다. | + | |
| - | 연결되지 않은 시스템의 경우, Red Hat 고객 포털에서 leapp, leapp-deps, python3-leapp, | + | |
| - | + | ||
| - | Leapp 유틸리티 설치: | + | |
| - | # dnf install leapp-upgrade | + | |
| - | + | ||
| - | 시스템 전체 업데이트 및 재부팅: 모든 패키지를 최신 RHEL 9 버전으로 업데이트하고 시스템을 재부팅합니다. | + | |
| - | # dnf update | + | |
| - | # reboot | + | |
| - | 이는 시스템이 가장 안정적인 최신 상태에서 업그레이드를 시작하도록 합니다. | + | |
| - | + | ||
| - | rpmnew 및 rpmsave 파일 검토 (선택 사항): 생성된 rpmnew 및 rpmsave 파일을 검토, 수정 후 제거합니다. | + | |
| - | + | ||
| - | 구성 관리 시스템 비활성화: | + | |
| - | + | ||
| - | ISO 이미지 사용 시 확인: ISO 이미지를 사용하여 업그레이드하는 경우, ISO 이미지에 대상 OS 버전(예: RHEL 10.0)이 포함되어 있고, Leapp 유틸리티가 업그레이드 과정 전체에서 접근할 수 있도록 영구 로컬 마운트 지점에 저장되었는지 확인합니다. | + | |
| - | + | ||
| - | ==== 3.2. 업그레이드를 위한 Satellite 등록 시스템 준비 | + | |
| - | + | ||
| - | Satellite에 등록된 시스템을 RHEL 10으로 인플레이스 업그레이드하기 전에, Satellite 서버에서 다음 준비 단계를 수행해야 합니다.[1] 이 절차와 "3.1. 업그레이드를 위한 RHEL 9 시스템 준비" | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | Satellite 서버에 대한 관리자 권한이 있어야 합니다. | + | |
| - | + | ||
| - | Satellite가 전체 또는 유지 관리 지원 버전이어야 합니다. | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | 서브스크립션 매니페스트 가져오기: | + | |
| - | + | ||
| - | 필수 리포지토리 활성화 및 동기화: Satellite 서버에서 필요한 모든 RHEL 9 및 RHEL 10 리포지토리를 활성화하고, | + | |
| - | + | ||
| - | 중요: RHEL 10 리포지토리의 경우, 각 리포지토리의 대상 OS 버전(예: RHEL 10.0)을 활성화해야 합니다. RHEL 10의 일반 버전 리포지토리만 활성화하면 인플레이스 업그레이드가 차단될 수 있습니다. | + | |
| - | + | ||
| - | Intel 아키텍처(EUS 미사용) 예시 (소스 OS 버전 9.6, 대상 OS 버전 10.0): | + | |
| - | + | ||
| - | Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs) (rhel-9-for-x86_64-appstream-rpms x86_64 9.6) | + | |
| - | + | ||
| - | Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) (rhel-9-for-x86_64-baseos-rpms x86_64 9.6) (문서에는 RHEL 8로 오타가 있으나, RHEL 9가 맞습니다 [1]) | + | |
| - | + | ||
| - | Red Hat Enterprise Linux 10 for x86_64 - AppStream (RPMs) (rhel-10-for-x86_64-appstream-rpms x86_64 10.0) (문서에는 rhel-9-for-x86_64-appstream-rpms x86_64 | + | |
| - | + | ||
| - | Red Hat Enterprise Linux 10 for x86_64 - BaseOS (RPMs) (rhel-10-for-x86_64-baseos-rpms x86_64 10.0) (문서에는 rhel-9-for-x86_64-baseos-rpms x86_64 | + | |
| - | 정확한 리포지토리 목록과 버전은 부록 A와 B를 참조하십시오.[1] Satellite 환경에서 올바른 리포지토리 설정은 Leapp이 필요한 패키지에 접근하는 데 매우 중요하며, | + | |
| - | + | ||
| - | 콘텐츠 호스트 연결: 콘텐츠 호스트를 필요한 RHEL 9 및 RHEL 10 리포지토리가 포함된 콘텐츠 뷰에 연결합니다. | + | |
| - | + | ||
| - | 검증 [1]: | + | |
| - | + | ||
| - | Satellite 웹 UI 또는 hammer CLI 명령을 사용하여 올바른 RHEL 9 및 RHEL 10 리포지토리가 올바른 콘텐츠 뷰에 추가되었는지 확인합니다. | + | |
| - | # hammer repository list --search ' | + | |
| - | # hammer repository list --search ' | + | |
| - | + | ||
| - | 콘텐츠 뷰와 연결된 활성화 키에 올바른 RHEL 10 리포지토리가 활성화되었는지 확인합니다 (Satellite 웹 UI > Content > Lifecycle > Activation Keys). | + | |
| - | + | ||
| - | 호스트에서 예상되는 모든 RHEL 9 리포지토리가 활성화되었는지 확인합니다. | + | |
| - | # subscription-manager repos --list-enabled | grep "^Repo ID" | + | |
| - | + | ||
| - | ===== 4. 업그레이드 전 보고서 검토 ===== | + | |
| - | + | ||
| - | 시스템의 업그레이드 가능성을 평가하기 위해 leapp preupgrade 명령을 사용하여 사전 업그레이드 프로세스를 시작합니다.[1] 이 단계에서 Leapp 유틸리티는 시스템 데이터를 수집하고, | + | |
| - | + | ||
| - | 중요 사항 [1]: | + | |
| - | + | ||
| - | 사전 평가는 시스템 구성을 변경하지 않지만, // | + | |
| - | + | ||
| - | 보고서에 업그레이드 차단 요소(inhibitor)가 없더라도 전체 보고서를 검토해야 합니다. 여기에는 업그레이드된 시스템이 올바르게 작동하도록 하기 위해 업그레이드 전에 완료해야 할 권장 조치가 포함되어 있습니다. | + | |
| - | + | ||
| - | 사전 보고서는 전체 업그레이드 프로세스를 시뮬레이션하는 것이 아니므로, | + | |
| - | + | ||
| - | ==== 4.1. 명령줄에서 업그레이드 가능성 평가 ==== | + | |
| - | + | ||
| - | 명령줄을 사용하여 사전 업그레이드 단계에서 잠재적인 업그레이드 문제를 식별합니다.[1] | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | "3장. 업그레이드 준비" | + | |
| - | + | ||
| - | 제한되지 않은 SELinux 역할(unconfined_r)로 root에 로그인해야 합니다. sudo 사용 시 sudo -r unconfined_r -t unconfined_t leapp preupgrade와 같이 실행합니다. | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | RHEL 9 시스템에서 사전 업그레이드 단계를 수행합니다: | + | |
| - | # leapp preupgrade --target < | + | |
| - | < | + | |
| - | + | ||
| - | 사용자 지정 리포지토리: | + | |
| - | + | ||
| - | RHSM 미사용/ | + | |
| - | + | ||
| - | EUS/AUS 서브스크립션: | + | |
| - | + | ||
| - | RHEL for Real Time/NFV: 관련 리포지토리를 --enablerepo 옵션으로 활성화합니다 (예: # leapp preupgrade --enablerepo rhel-10-for-x86_64-rt-rpms). | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | 높음 (High): 시스템 상태 악화 가능성이 매우 높음. | + | |
| - | + | ||
| - | 중간 (Medium): 시스템 및 애플리케이션에 영향 가능. | + | |
| - | + | ||
| - | 낮음 (Low): 시스템에는 영향 없으나 애플리케이션에 영향 가능. | + | |
| - | + | ||
| - | 정보 (Info): 정보 제공, 시스템/ | + | |
| - | **차단 요소(Inhibitor)**로 표시된 문제는 해결 전까지 업그레이드를 진행할 수 없습니다. | + | |
| - | + | ||
| - | Leapp 유틸리티가 수동 답변을 요구하는 질문을 생성한 경우 (보고서에 " | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | 파일을 수동으로 편집하여 confirm 줄의 주석(# | + | |
| - | 또는 다음 명령으로 답변할 수 있습니다: | + | |
| - | # leapp answer --section < | + | |
| - | 이 answerfile은 Leapp이 특정 시스템 구성에 대해 사용자의 확인을 받아야 할 때 사용되며, | + | |
| - | + | ||
| - | 이전 단계를 반복하여 사전 업그레이드 보고서를 다시 실행하고 모든 중요 문제가 해결되었는지 확인합니다. | + | |
| - | + | ||
| - | ==== 4.2. 웹 콘솔(Cockpit-Leapp)을 통한 평가 및 자동 수정 ==== | + | |
| - | + | ||
| - | 웹 콘솔(Cockpit)의 cockpit-leapp 플러그인을 사용하여 사전 업그레이드 단계에서 문제를 식별하고 자동 수정을 적용할 수 있습니다.[1] | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | "3장. 업그레이드 준비" | + | |
| - | + | ||
| - | 제한되지 않은 SELinux 역할로 root에 로그인해야 합니다. | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | cockpit-leapp 플러그인을 설치합니다: | + | |
| - | # dnf install cockpit-leapp | + | |
| - | + | ||
| - | 웹 콘솔에 root 또는 sudo 권한이 있는 사용자로 로그인합니다. | + | |
| - | + | ||
| - | RHEL 9 시스템에서 명령줄 또는 웹 콘솔 터미널을 통해 사전 업그레이드 단계를 수행합니다 (4.1절의 leapp preupgrade 명령어 및 옵션과 동일). | + | |
| - | + | ||
| - | 웹 콘솔 탐색 메뉴에서 Upgrade Report를 선택하여 보고된 모든 문제를 검토합니다. 차단 문제는 해결 전까지 업그레이드를 막습니다. 문제의 상세 내용을 보려면 해당 행을 선택합니다. | + | |
| - | + | ||
| - | " | + | |
| - | + | ||
| - | 해당 행을 선택하여 세부 정보 창을 엽니다. 기본 답변은 수정 명령 끝에 표시됩니다. | + | |
| - | + | ||
| - | 기본 답변을 확인하려면 Add to Remediation Plan (나중에 실행) 또는 Run Remediation (즉시 실행)을 선택합니다. | + | |
| - | + | ||
| - | 다른 답변을 선택하려면 터미널에서 leapp answer --section < | + | |
| - | + | ||
| - | 일부 문제에는 자동 해결을 위한 수정 명령이 제공됩니다. | + | |
| - | + | ||
| - | 단일 수정 명령 실행: 문제의 세부 정보 창에서 Run Remediation 클릭. | + | |
| - | + | ||
| - | 수정 계획에 추가: 문제의 세부 정보 창에서 Add to Remediation Plan 클릭. | + | |
| - | + | ||
| - | 전체 수정 계획 실행: 보고서 오른쪽 상단의 Remediation plan 링크를 클릭한 후 Execute Remediation Plan을 클릭하여 추가된 모든 명령을 실행합니다. | + | |
| - | 웹 콘솔을 사용하면 보고서 내용을 시각적으로 확인하고, | + | |
| - | + | ||
| - | 보고서 검토 및 모든 문제 해결 후, 3-7단계를 반복하여 보고서를 다시 실행하고 모든 중요 문제가 해결되었는지 확인합니다. | + | |
| - | + | ||
| - | ===== 5. 업그레이드 수행 ===== | + | |
| - | + | ||
| - | 준비 단계를 완료하고 업그레이드 전 보고서에서 발견된 문제를 모두 검토하고 해결한 후, 시스템에서 실제 인플레이스 업그레이드를 수행할 수 있습니다.[1] | + | |
| - | + | ||
| - | ==== 5.1. RHEL 9에서 RHEL 10으로 업그레이드 실행 ==== | + | |
| - | + | ||
| - | Leapp 유틸리티를 사용하여 RHEL 9에서 RHEL 10으로 업그레이드를 수행하는 절차는 다음과 같습니다.[1] | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | "3장. 업그레이드 준비" | + | |
| - | + | ||
| - | "4장. 업그레이드 전 보고서 검토" | + | |
| - | + | ||
| - | 업그레이드 실패를 방지하기 위해 안티바이러스 소프트웨어를 일시적으로 비활성화해야 합니다. | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | 시스템 백업 확인: 시스템 전체 백업 또는 가상 머신 스냅샷이 있는지 다시 한번 확인합니다. 재해 복구 절차를 통해 업그레이드 전 상태로 시스템을 복구할 수 있어야 합니다. | + | |
| - | + | ||
| - | Relax-and-Recover (ReaR) 유틸리티 사용. | + | |
| - | + | ||
| - | LVM 스냅샷 또는 RAID 분할 사용 (VM의 경우 전체 VM 스냅샷). Boom 유틸리티로 스냅샷 및 롤백 부팅 항목 관리 가능. | + | |
| - | LVM 스냅샷만으로는 특정 업그레이드 실패 시 시스템 복구가 불가능할 수 있으므로, | + | |
| - | + | ||
| - | RHEL 9 시스템에서 업그레이드 프로세스를 시작합니다: | + | |
| - | # leapp upgrade --target <target_os_version> | + | |
| - | <target_os_version> | + | |
| - | + | ||
| - | 사용자 지정 리포지토리: | + | |
| - | + | ||
| - | RHSM 미사용/RHUI 사용: --no-rhsm | + | |
| - | + | ||
| - | ISO 이미지 사용: --no-rhsm --iso < | + | |
| - | + | ||
| - | EUS/AUS 서브스크립션: | + | |
| - | + | ||
| - | RHEL for Real Time/NFV: --enablerepo rhel-10-for-x86_64-rt-rpms | + | |
| - | + | ||
| - | 업그레이드 프로세스 시작 시, Leapp은 "4장. 업그레이드 전 보고서 검토" | + | |
| - | + | ||
| - | 시스템이 업그레이드 가능하면, | + | |
| - | + | ||
| - | 시스템이 안정적인 업그레이드 매개변수를 충족하지 못하면, Leapp은 업그레이드 프로세스를 종료하고 // | + | |
| - | + | ||
| - | 시스템 수동 재부팅: | + | |
| - | # reboot | + | |
| - | 이 단계에서 시스템은 RHEL 10 기반 초기 RAM 디스크 이미지(initramfs)로 부팅됩니다. Leapp은 모든 패키지를 업그레이드하고 RHEL 10 시스템으로 자동 재부팅합니다. | + | |
| - | 또는, leapp upgrade 명령에 --reboot 옵션을 추가하여 이 수동 단계를 생략할 수 있습니다. | + | |
| - | 실패 발생 시, "9장. 문제 해결" | + | |
| - | + | ||
| - | RHEL 10 시스템에 로그인하고 "6장. 업그레이드 후 상태 확인" | + | |
| - | + | ||
| - | 업그레이드 보고서 및 "7장. RHEL 10 시스템에서 업그레이드 후 작업 수행" | + | |
| - | + | ||
| - | ===== 6. 업그레이드 후 상태 확인 ===== | + | |
| - | + | ||
| - | RHEL 10으로 인플레이스 업그레이드를 수행한 후, 시스템이 올바른 상태인지 확인해야 합니다.[1] 이를 통해 시스템에 영향을 미칠 수 있는 중요한 오류를 식별하고 수정할 수 있습니다. | + | |
| - | + | ||
| - | ==== 6.1. RHEL 10 시스템의 업그레이드 후 상태 확인 ==== | + | |
| - | + | ||
| - | 다음은 RHEL 10으로 인플레이스 업그레이드 후 권장되는 확인 절차입니다.[1] | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | "5장. 업그레이드 수행" | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | 업그레이드가 완료되면 시스템이 필요한 상태인지 최소한 다음 사항을 확인합니다: | + | |
| - | + | ||
| - | 현재 OS 버전 확인: | + | |
| - | # cat / | + | |
| - | 예상 출력: Red Hat Enterprise Linux release 10.0 (Coughlan) (또는 해당하는 RHEL 10.x 버전) | + | |
| - | + | ||
| - | OS 커널 버전 확인: | + | |
| - | # uname -r | + | |
| - | 예상 출력 예시: 6.12.0-55.2.1.el10.x86_64. 여기서 .el10이 중요하며, | + | |
| - | 커널 버전 확인은 시스템이 실제로 새로운 RHEL 10 커널로 부팅되었는지 확인하는 중요한 단계입니다. 이전 버전 커널로 부팅되었다면 업그레이드가 불완전하거나 부팅 설정에 문제가 있을 수 있습니다. | + | |
| - | + | ||
| - | Red Hat Subscription Manager 사용 시: | + | |
| - | + | ||
| - | 설치된 제품 확인: | + | |
| - | # subscription-manager list --installed | + | |
| - | 출력에서 " | + | |
| - | + | ||
| - | 릴리스 버전 확인: 업그레이드 직후 릴리스 버전이 예상 대상 OS 버전으로 설정되었는지 확인합니다. | + | |
| - | # subscription-manager release | + | |
| - | 예상 출력: Release: 10.0 | + | |
| - | + | ||
| - | 네트워크 서비스 작동 확인: 예를 들어, SSH를 사용하여 서버에 연결을 시도합니다. | + | |
| - | + | ||
| - | 애플리케이션 업그레이드 후 상태 확인: 경우에 따라 수동으로 마이그레이션 및 구성 변경을 수행해야 할 수 있습니다. 예를 들어, 데이터베이스 마이그레이션은 관련 문서 지침을 따릅니다. | + | |
| - | + | ||
| - | 이러한 확인 과정을 통해 업그레이드가 성공적으로 완료되었는지, | + | |
| - | + | ||
| - | ===== 7. RHEL 10 시스템에서 업그레이드 후 작업 수행 ===== | + | |
| - | + | ||
| - | 인플레이스 업그레이드 후, 불필요한 패키지를 제거하고, | + | |
| - | + | ||
| - | ==== 7.1. 업그레이드 후 작업 수행 ==== | + | |
| - | + | ||
| - | 다음은 RHEL 10으로 인플레이스 업그레이드 후 권장되는 주요 작업 목록입니다.[1] | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | "5장. 업그레이드 수행" | + | |
| - | + | ||
| - | "6장. 업그레이드 후 상태 확인" | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | Leapp 관련 패키지 제외 목록에서 제거: // | + | |
| - | + | ||
| - | 수동 제거: // | + | |
| - | + | ||
| - | 모든 패키지 제외 목록에서 제거: | + | |
| - | # dnf config-manager --save --setopt exclude="" | + | |
| - | + | ||
| - | 남아있는 RHEL 9 패키지 제거: | + | |
| - | + | ||
| - | 남아있는 RHEL 9 패키지 찾기: | + | |
| - | # rpm -qa | grep -e ' | + | |
| - | (문서에는 \.el로 되어 있으나, RHEL 9에서 업그레이드했으므로 \.el9 또는 더 넓게 \.el를 사용할 수 있습니다. 여기서는 문서대로 표기합니다.) | + | |
| - | + | ||
| - | RHEL 10 시스템에서 나머지 RHEL 9 패키지 제거 (DNF 사용 권장): | + | |
| - | # dnf remove $(rpm -qa | grep ' | + | |
| - | 이 명령은 이전 버전의 잔여 패키지를 정리하여 시스템을 깨끗하게 유지하고 잠재적인 충돌을 방지합니다. | + | |
| - | + | ||
| - | 나머지 Leapp 종속성 패키지 제거: | + | |
| - | # dnf remove leapp-deps-el10 leapp-repository-deps-el10 | + | |
| - | + | ||
| - | 업그레이드 관련 데이터 제거 (선택 사항): | + | |
| - | # rm -rf / | + | |
| - | (문서에는 // | + | |
| - | 중요: 이 데이터를 제거하면 Red Hat 지원팀이 업그레이드 후 문제를 조사하고 해결하는 데 제한이 있을 수 있습니다. | + | |
| - | + | ||
| - | RHEL 10과 호환되지 않는 DNF 리포지토리 비활성화: | + | |
| - | # dnf config-manager --set-disabled < | + | |
| - | + | ||
| - | 복구 커널 및 초기 RAM 디스크 업데이트: | + | |
| - | + | ||
| - | 기존 복구 커널 및 initramfs 제거: | + | |
| - | # rm / | + | |
| - | (문서에는 // | + | |
| - | + | ||
| - | 새 복구 커널 및 initramfs 재설치: | + | |
| - | # / | + | |
| - | (문서에는 "/ | + | |
| - | + | ||
| - | IBM Z 아키텍처인 경우 zipl 부트 로더 업데이트: | + | |
| - | # zipl | + | |
| - | 이 작업은 시스템 장애 시 복구 환경이 최신 상태를 반영하도록 보장합니다. | + | |
| - | + | ||
| - | 기존 구성 파일 확인 (선택 사항): | + | |
| - | + | ||
| - | rpmnew, rpmsave, leappsave 파일을 검토, 수정 후 제거합니다. | + | |
| - | + | ||
| - | 더 이상 유효하지 않은 // | + | |
| - | + | ||
| - | 보안 정책 재평가 및 재적용: 특히 SELinux 모드를 enforcing으로 변경합니다 (8장 참조). | + | |
| - | + | ||
| - | 검증 [1]: | + | |
| - | + | ||
| - | 이전에 제거된 복구 커널 및 initramfs 파일이 현재 커널용으로 생성되었는지 확인: | + | |
| - | # ls / | + | |
| - | # lsinitrd / | + | |
| - | (파일 이름은 시스템에 따라 약간 다를 수 있습니다.) | + | |
| - | + | ||
| - | 복구 부팅 항목이 기존 복구 파일을 참조하는지 grubby로 확인: | + | |
| - | # grubby --info / | + | |
| - | (파일 이름은 시스템에 따라 약간 다를 수 있습니다.) | + | |
| - | + | ||
| - | grubby --info ALL 출력을 검토하여 RHEL 9 부팅 항목이 없는지 확인합니다. | + | |
| - | + | ||
| - | // | + | |
| - | # grep -r " | + | |
| - | + | ||
| - | ===== 8. 보안 정책 적용 ===== | + | |
| - | + | ||
| - | 인플레이스 업그레이드 과정에서 SELinux 정책은 permissive 모드로 전환됩니다. 또한, 주요 릴리스 간 보안 프로필 변경이 있을 수 있습니다. 시스템 보안을 복원하려면 SELinux를 다시 enforcing 모드로 전환하고 시스템 전체 암호화 정책을 확인해야 합니다. 특정 보안 프로필을 준수하도록 시스템을 수정하거나, | + | |
| - | + | ||
| - | ==== 8.1. SELinux 모드를 강제(Enforcing) 모드로 변경 ==== | + | |
| - | + | ||
| - | Leapp 유틸리티는 업그레이드 중 SELinux 모드를 permissive로 설정합니다. 시스템이 성공적으로 업그레이드되면 SELinux 모드를 수동으로 enforcing으로 변경해야 합니다.[1] 이는 시스템 보안을 원래 상태로 복원하는 중요한 단계입니다. | + | |
| - | + | ||
| - | 사전 요구 사항 [1]: | + | |
| - | + | ||
| - | 시스템이 업그레이드되었고 "6장. 업그레이드 후 상태 확인" | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | SELinux 거부(denial)가 없는지 확인합니다 (예: ausearch 유틸리티 사용): | + | |
| - | # ausearch -m AVC, | + | |
| - | 이는 가장 일반적인 시나리오이며, | + | |
| - | + | ||
| - | // | + | |
| - | # vi / | + | |
| - | + | ||
| - | SELINUX=enforcing 옵션을 구성합니다: | + | |
| - | SELINUX=enforcing | + | |
| - | SELINUXTYPE=targeted (일반적으로 기본값) | + | |
| - | + | ||
| - | 변경 사항을 저장하고 시스템을 재시작합니다: | + | |
| - | # reboot | + | |
| - | + | ||
| - | 검증 [1]: | + | |
| - | + | ||
| - | 시스템 재시작 후 getenforce 명령이 Enforcing을 반환하는지 확인합니다: | + | |
| - | $ getenforce | + | |
| - | Enforcing | + | |
| - | + | ||
| - | ==== 8.2. 시스템 전체 암호화 정책 ==== | + | |
| - | + | ||
| - | 시스템 전체 암호화 정책은 TLS, IPSec, SSH, DNSSec, Kerberos 프로토콜을 포함하는 핵심 암호화 하위 시스템을 구성합니다. 인플레이스 업그레이드 프로세스는 RHEL 9에서 사용한 암호화 정책을 보존합니다 (예: RHEL 9에서 DEFAULT 정책을 사용했다면 RHEL 10에서도 DEFAULT 사용). 그러나 RHEL 10 암호화 정책은 더 엄격하고 안전한 기본값을 포함할 수 있으므로, | + | |
| - | + | ||
| - | 현재 정책 확인: | + | |
| - | $ update-crypto-policies --show | + | |
| - | + | ||
| - | 정책 변경 (예: FUTURE 정책으로 설정): | + | |
| - | # update-crypto-policies --set FUTURE | + | |
| - | 사용자 지정 암호화 정책은 업그레이드 시 유지되지만, | + | |
| - | + | ||
| - | ==== 8.3. 보안 기준 강화 시스템 업그레이드 (OpenSCAP 사용) ==== | + | |
| - | + | ||
| - | RHEL 10으로 성공적으로 업그레이드한 후, OpenSCAP 제품군에서 제공하는 자동 수정을 사용하여 시스템을 PCI-DSS, OSPP 등과 같은 보안 기준선에 맞게 강화할 수 있습니다. RHEL 주요 버전 간에는 보안 권장 사항이 다를 수 있으며, Leapp은 강화된 RHEL 9 시스템의 완전한 강화를 직접적으로 유지하지 않을 수 있습니다.[1] | + | |
| - | + | ||
| - | 참고/ | + | |
| - | + | ||
| - | RHEL 9와 RHEL 10 스캔에는 동일한 SCAP 콘텐츠를 사용할 수 없습니다. | + | |
| - | + | ||
| - | 자동 수정은 기본 구성의 RHEL 시스템을 지원합니다. 업그레이드 후 시스템 구성이 변경되었으므로, | + | |
| - | + | ||
| - | PCI-DSS 프로필 적용 예시 [1]: | + | |
| - | 사전 요구 사항: scap-security-guide 패키지가 RHEL 10 시스템에 설치되어 있어야 합니다. | + | |
| - | + | ||
| - | 적절한 데이터 스트림 .xml 파일 찾기: | + | |
| - | $ ls / | + | |
| - | (예: ssg-rhel10-ds.xml) | + | |
| - | + | ||
| - | 선택한 프로필에 따라 시스템 수정: | + | |
| - | # oscap xccdf eval --profile < | + | |
| - | < | + | |
| - | 주의: --remediate 옵션은 신중하게 사용해야 하며, 시스템을 사용할 수 없게 만들 수 있습니다. Red Hat은 자동 롤백 방법을 제공하지 않습니다. | + | |
| - | + | ||
| - | 시스템 재시작: | + | |
| - | # reboot | + | |
| - | 검증: 시스템이 프로필과 호환되는지 확인하고 결과를 HTML 파일로 저장: | + | |
| - | $ oscap xccdf eval --report pcidss_report.html --profile pci-dss / | + | |
| - | + | ||
| - | ==== 8.4. USBGuard 정책 확인 ==== | + | |
| - | + | ||
| - | USBGuard는 허용/ | + | |
| - | + | ||
| - | 프로세스 [1]: | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | usbguard generate-policy를 사용하여 새 정책 파일 생성 (현재 연결된 USB 장치에 대한 규칙만 생성). | + | |
| - | + | ||
| - | 새로 생성된 규칙과 이전 정책의 규칙을 비교하여, | + | |
| - | + | ||
| - | ==== 8.5. Fapolicyd 데이터베이스 업데이트 ==== | + | |
| - | + | ||
| - | fapolicyd는 사용자 정의 정책에 따라 애플리케이션 실행을 제어합니다. 드물게 fapolicyd 신뢰 데이터베이스 형식 문제가 발생할 수 있습니다. 이 경우 데이터베이스를 재구축해야 합니다.[1] | + | |
| - | + | ||
| - | 데이터베이스 재구축 프로세스 [1]: | + | |
| - | + | ||
| - | 서비스 중지: # systemctl stop fapolicyd | + | |
| - | + | ||
| - | 데이터베이스 삭제: # fapolicyd-cli --delete-db | + | |
| - | + | ||
| - | 서비스 시작: # systemctl start fapolicyd | + | |
| - | 사용자 정의 신뢰 파일을 추가한 경우, fapolicyd-cli -f update | + | |
| - | + | ||
| - | ===== 9. 문제 해결 ===== | + | |
| - | + | ||
| - | RHEL 9에서 RHEL 10으로 업그레이드하는 과정에서 발생할 수 있는 문제 해결을 위한 팁과 리소스는 다음과 같습니다.[1] | + | |
| - | + | ||
| - | ==== 9.1. 주요 문제 해결 팁 ==== | + | |
| - | + | ||
| - | 사전 업그레이드 단계 [1]: | + | |
| - | + | ||
| - | 시스템이 "2장. 업그레이드 계획" | + | |
| - | + | ||
| - | "3장. 업그레이드 준비" | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | 다운로드 단계 [1]: | + | |
| - | + | ||
| - | RPM 패키지 다운로드 중 문제 발생 시 // | + | |
| - | + | ||
| - | Initramfs 단계 [1]: | + | |
| - | + | ||
| - | 이 단계에서 실패 시 Dracut 쉘로 리디렉션됩니다. journalctl로 저널 로그를 확인하거나, | + | |
| - | + | ||
| - | 업그레이드 후 단계 [1]: | + | |
| - | + | ||
| - | 시스템이 성공적으로 업그레이드된 것처럼 보이지만 이전 RHEL 9 커널로 부팅된 경우, 시스템을 재시작하고 GRUB의 기본 항목 커널 버전을 확인합니다. | + | |
| - | + | ||
| - | "6장. 업그레이드 후 상태 확인" | + | |
| - | + | ||
| - | SELinux를 enforcing 모드로 전환 후 애플리케이션/ | + | |
| - | + | ||
| - | ==== 9.2. 중요 로그 파일 위치 ==== | + | |
| - | + | ||
| - | ^ 파일 경로 | + | |
| - | | // | + | |
| - | | // | + | |
| - | | // | + | |
| - | | // | + | |
| - | | journalctl | 업그레이드 중 Leapp, DNF, 커널 메시지를 포함한 시스템 전체 로그 | | + | |
| - | [1] | + | |
| - | + | ||
| - | 이러한 로그 파일들은 문제 발생 시 원인을 파악하고 해결책을 찾는 데 결정적인 단서를 제공합니다. 특히 leapp-report.txt는 업그레이드 시도 전에 반드시 검토해야 할 가장 중요한 정보원입니다. | + | |
| - | + | ||
| - | ==== 9.3. 알려진 문제 ==== | + | |
| - | 다음은 업그레이드 시 발생할 수 있는 몇 가지 알려진 문제입니다.[1] 이러한 문제들을 사전에 인지하고 있으면, 발생 시 신속하게 대처하거나 예방 조치를 취하는 데 도움이 됩니다. | + | |
| - | + | ||
| - | 타사 장치 드라이버: | + | |
| - | + | ||
| - | 중복 패키지 이름: 시스템에 설치된 타사 패키지(Red Hat 서명 안 됨) 이름이 Red Hat 제공 패키지 이름과 동일하면 인플레이스 업그레이드가 실패합니다. 해결 방법은 업그레이드 전 타사 패키지를 제거하거나 Red Hat 제공 패키지로 교체하는 것입니다. | + | |
| - | + | ||
| - | 소프트웨어 RAID: 소프트웨어 RAID(Redundant Array of Independent Disks)가 있는 시스템에서 인플레이스 업그레이드가 실패할 수 있습니다 (BZ# | + | |
| - | + | ||
| - | NIC 이름 변경: 일부 시스템(예: | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | HTTP 프록시: subscription-manager를 rhsm.conf에 구성하는 대신 --proxy 옵션으로 사용하면 Leapp이 프록시를 감지하지 못해 업그레이드가 실패합니다 (BZ# | + | |
| - | + | ||
| - | Kerberos 클라이언트: | + | |
| - | + | ||
| - | ==== 9.4. 지원 받기 ==== | + | |
| - | 지원이 필요한 경우, RHEL 9를 제품으로 선택하여 지원 케이스를 열고 시스템에서 sosreport를 제공합니다.[1] | + | |
| - | + | ||
| - | sosreport 생성: # sosreport | + | |
| - | + | ||
| - | ===== 10. 결론 ===== | + | |
| - | + | ||
| - | RHEL 9에서 RHEL 10으로의 인플레이스 업그레이드는 Leapp 유틸리티를 통해 체계적으로 진행될 수 있는 과정입니다. 성공적인 업그레이드를 위해서는 다음 사항들이 중요합니다: | + | |
| - | + | ||
| - | 철저한 계획 및 사전 검토: 지원되는 경로 확인, 시스템 요구 사항 및 제한 사항(특히 애플리케이션 호환성, 부트로더, | + | |
| - | + | ||
| - | 시스템 준비의 중요성: 최신 패키지 상태 유지, 정확한 리포지토리 설정(특히 Satellite 환경), 시스템 백업은 필수적입니다.[1] 리포지토리 구성 오류는 흔한 실패 원인이므로, | + | |
| - | + | ||
| - | leapp preupgrade 보고서 활용: 업그레이드 전 보고서를 통해 잠재적 문제를 식별하고, | + | |
| - | + | ||
| - | 단계별 실행 및 검증: leapp upgrade 명령 실행 후 재부팅 과정과 업그레이드 후 OS 버전, 커널, 서브스크립션 상태 등을 꼼꼼히 확인해야 합니다.[1] | + | |
| - | + | ||
| - | 업그레이드 후 작업 및 보안 강화: 불필요한 패키지 정리, 복구 커널 업데이트, | + | |
| - | + | ||
| - | 문제 해결 능력: 주요 로그 파일 위치를 숙지하고, | + | |
| - | + | ||
| - | 이 가이드에 설명된 절차와 권장 사항을 따르면 RHEL 9 시스템을 RHEL 10으로 성공적으로 업그레이드하여 최신 기능과 향상된 보안을 활용할 수 있을 것입니다. | + | |
| - | + | ||
| - | ===== 부록 A: RHEL 9 및 RHEL 10 리포지토리 정보 (요약) ===== | + | |
| - | + | ||
| - | 인플레이스 업그레이드 시 Leapp 유틸리티는 소스(RHEL 9) 및 대상(RHEL 10) 운영 체제의 패키지에 접근해야 합니다. 이를 위해 올바른 리포지토리 설정이 매우 중요합니다.[1] | + | |
| - | + | ||
| - | Red Hat CDN (RHSM 직접 등록 시): 일반적으로 Leapp이 필요한 RHEL 9 및 RHEL 10 리포지토리를 자동으로 처리합니다. | + | |
| - | + | ||
| - | Red Hat Satellite 환경: | + | |
| - | + | ||
| - | RHEL 9 리포지토리: | + | |
| - | + | ||
| - | RHEL 10 리포지토리: | + | |
| - | + | ||
| - | 중요: 단순히 주 버전(예: "RHEL 9")만 활성화하고 특정 부 버전(예: " | + | |
| - | + | ||
| - | 정확한 리포지토리 이름과 ID는 문서의 부록 A(RHEL 9 리포지토리)와 부록 B(RHEL 10 리포지토리)에서 확인할 수 있습니다.[1] Satellite 환경에서는 이 설정이 수동으로 이루어지므로 각별한 주의가 필요하며, | + | |