RHEL 7에서 CentOS 7로 변환 스크립트
RHEL 7을 실행하는 시스템을 CentOS 7로 전환하는 데 대한 지원 요청을 받았습니다. 이러한 전환을 원하는 조직에는 서버 제품군을 표준화하려는 이유부터 라이선스 변경, 향후 마이그레이션 경로 또는 기타 요인에 이르기까지 다양한 이유가 있습니다.
CentOS는 커뮤니티가 주도하는 무료 RHEL 버전으로, 공식 지원이 필요하지 않은 사용자에게 라이센스가 있는 RHEL의 훌륭한 대안이 될 수 있습니다. 리포지토리를 변경하는 것은 간단한 작업처럼 보일 수 있지만 실제로는 다소 복잡한 프로세스입니다. 이러한 이유로 자동으로 변환을 수행하는 스크립트를 만들었습니다.
이 문서에서는 변환 스크립트 및 RHEL 7에서 CentOS 7로의 마이그레이션 프로세스에 대해 자세히 설명합니다. 하지만 CentOS 7은 2024년 6월에 지원 종료 단계에 도달하므로 그 시점에 공급업체의 지원이 종료되며 조직에서 이 배포판을 계속 안전하게 사용하려면 연장 지원을 구매해야 한다는 점에 유의하세요.
이제 마이그레이션 단계로 넘어가겠습니다...
이 스크립트의 기능은 무엇인가요?
이 스크립트를 실행하기 전에 스크립트의 기능을 이해하는 것이 좋습니다. 이 스크립트는 Python 으로 작성되었으며 다음 9가지 작업을 수행합니다:
1. 1. 변환이 이미 완료되었는지 확인
이 스크립트는 비활성 상태로 설계되었기 때문에 위험 없이 여러 번 실행할 수 있습니다. 모든 단계의 상태는 특수 파일에 저장되므로 스크립트는 이전에 완료된 단계를 다시 실행하지 않습니다. 모든 단계가 완료되면 스크립트는 "시스템이 이미 CentOS 7로 마이그레이션되었습니다."라는 메시지를 반환하고 종료합니다.
2. 2. 스크립트가 루트 권한으로 실행 중인지 확인합니다.
스크립트가 실행하는 대부분의 명령에는 루트 권한이 필요하므로 맨 처음에 이를 확인합니다.
3. 3. 현재 시스템이 RHEL 7인지 확인합니다.
이 스크립트는 설치된 시스템이 RHEL 7인지 확인합니다. 운영 체제마다 고유한 특성이 있으므로 지원되지 않는 시스템에서 스크립트를 실행하려고 하면 예기치 않은 결과가 발생할 수 있습니다.
4. 4. RHEL 관련 패키지 제거
이 단계에서는 릴리스 및 리포지토리에 대한 정보가 포함된 로고 및 구성 파일과 같이 RHEL과 관련된 패키지를 제거합니다. 이러한 패키지는 주로 배포의 "브랜딩"을 담당하는 패키지입니다.
5. CentOS 전용 패키지 설치
RHEL 특정 패키지를 제거한 후에는 CentOS에서 해당 패키지로 대체됩니다. 앞으로 CentOS 리포지토리는 패키지를 설치 및 업데이트하는 데 사용됩니다.
6. 배포 패키지 업데이트
모든 시스템 패키지를 CentOS 리포지토리에서 사용 가능한 최신 버전으로 정기적으로 업데이트합니다.
7. 배포 패키지 동기화
CentOS의 패키지가 동등한 RHEL 패키지보다 낮은 버전인 경우에는 CentOS 리포지토리에서 사용 가능한 최신 버전과 패키지를 동기화하는 추가 단계가 필요합니다. 이 시나리오는 드물지만 발생할 수 있으므로 해결해야 합니다.
8. 일부 EFI 및 보안 부팅 관련 작업 수행
이 단계는 BIOS 모드가 아닌 UEFI 모드에서 실행되는 시스템을 변환하는 데 매우 중요합니다. 많은 솔루션과 문서에서 이러한 시스템을 처리하는 데 필요한 단계에 대한 정보를 제공하지 않지만, 이 단계를 무시하면 변환 후 운영 체제를 부팅할 수 없게 될 수 있습니다. RHEL과 CentOS는 각각 /boot/efi/EFI/redhat 및 /boot/efi/EFI/centos라는 다른 경로를 사용하여 Shim 및 Grub2 부트 로더를 부팅합니다.
이 불일치로 인해 두 가지 문제가 발생합니다. 첫째, 변환 후 Grub2 부트로더는 구성이 여전히 /boot/efi/EFI/redhat 디렉터리에 있더라도 새 경로에서 구성을 찾으려고 시도합니다. 두 번째 문제는 UEFI 펌웨어의 부팅 항목입니다. RHEL 항목은 더 이상 이 경로를 통해 액세스할 수 없는 /boot/efi/EFI/redhat의 부트 로더를 계속 가리키게 됩니다.
대부분의 UEFI 펌웨어는 부트 로더를 계속 감지하고 실행할 수 있는 폴백 모드를 구현합니다. 그러나 이 모드의 구현은 선택 사항이며 모든 하드웨어가 이 모드를 지원하는 것은 아닙니다. 따라서 마이그레이션 후 시스템을 부팅할 수 없게 됩니다. 이 두 가지 문제는 이 단계에서 자동으로 해결됩니다.
또한 이 단계에서 스크립트는 CentOS 저장소에서 Shim 및 Grub2 부트 로더와 Kernel이 설치되었는지 확인합니다. 이러한 패키지 중 하나라도 RHEL에서 가져온 것이 남아 있으면 시스템이 보안 부팅 모드로 부팅할 수 없습니다. 이러한 패키지는 CentOS 리포지토리에서 감지되어 다시 설치됩니다.
9. 9. 기본 GRUB 레코드 설정
일반적으로 RHEL 시스템에는 여러 최신 Kernel이 설치되어 있습니다. 따라서 스크립트는 마지막 단계에서 다음 부팅 단계의 기본 Kernel을 CentOS의 Kernel로 설정합니다. 이 단계는 보안 부팅 모드로 실행되는 시스템에도 필요합니다.
RHEL 7에서 CentOS 7로: 단계별 프로세스
1. 시스템 백업 만들기
마이그레이션 프로세스를 시작하기 전에 RHEL 7 시스템의 전체 백업을 수행하는 것이 좋습니다.
2. 스크립트 다운로드
RHEL 7을 CentOS 7로 마이그레이션하는 Python 스크립트는 GitHub에서 사용할 수 있습니다:
https://github.com/cloudlinux/rhel2centos
이 명령을 실행하여 컴퓨터에 스크립트를 다운로드할 수 있습니다.
curl -O https://raw.githubusercontent.com/cloudlinux/rhel2centos/main/migrate_7.py
3. 3. 스크립트 실행
파일이 다운로드되면 Python 명령을 사용하여 스크립트를 실행합니다.
sudo python 마이그레이트_7.py
출력:
시스템이 CentOS 7로 마이그레이션됩니다.
4. 마이그레이션 확인
마이그레이션이 성공했는지 확인하려면 다음 명령을 실행하여 릴리스 파일을 확인합니다.
cat /등/redhat-release
출력:
CentOS Linux 릴리스 7.9.2009(코어)
시스템이 기본적으로 CentOS Kernel로 부팅되는지 확인합니다.
sudo grubby -info DEFAULT | grep CentOS
출력:
title=CentOS Linux (3.10.0-1160.31.1.el7.x86_64) 7 (코어)
참고: 버전 번호는 새 업데이트가 출시될 때마다 달라질 수 있습니다.
RHEL 7 vs CentOS
RHEL 7은 저명한 엔터프라이즈 소프트웨어 회사인 Red Hat에서 개발한 상용 배포판이며, CentOS 7은 Red Hat Enterprise Linux(RHEL) 소스 코드에서 만든 커뮤니티 중심 배포판입니다.
RHEL 7은 강력한 보안, 안정성 및 지원이 필요한 엔터프라이즈 환경의 요구 사항을 충족하도록 특별히 설계되었지만, CentOS 7은 RHEL의 무료 오픈 소스 대안을 찾는 개인 사용자 및 소규모 조직에서 인기가 높습니다.
RHEL 7과 CentOS 7은 모두 보안 수준이 좋은 것으로 간주됩니다. 그러나 엔터프라이즈 수준의 지원과 독점 보안 도구에 대한 액세스를 제공하는 RHEL 7은 CentOS에 비해 약간의 이점이 있습니다. 따라서 높은 수준의 보안이 필요한 기업에게는 RHEL 7이 우수한 옵션으로 돋보입니다.
반면, 다양한 패키지를 갖춘 무료 오픈 소스 대체품을 찾고 있다면 CentOS 7을 선택하는 것이 좋습니다. 어떤 버전을 선택하든 RHEL 7과 CentOS 7은 대다수 사용자의 요구를 충족시킬 수 있는 매우 안전하고 신뢰할 수 있는 운영 체제입니다.
또한 RHEL 7에 대한 유지 보수 지원은 2024년 6월 30일에 종료되며 CentOS 7도 같은 날짜에 Lifecycle이 종료된다는 점에 유의하는 것이 중요합니다. 1년이 조금 넘게 남았으므로 사용자와 관리자는 다음과 같이 마이그레이션 계획을 세우는 것이 좋습니다. 마이그레이션 계획 시작.
대체 배포판으로의 마이그레이션이 확실하지 않은 경우 대체 배포판로 마이그레이션하는 것이 확실하지 않은 경우 다음에서 연장 지원을 선택할 수 있습니다. CentOS 7에 대한 TuxCare의 EOL 지원의 Lifecycle 연장 지원을 선택할 수 있습니다.
결론
요약하자면, RHEL 7에서 CentOS 7로 전환하는 것은 어려운 작업이 될 수 있습니다. 그러나 신중한 계획과 실행을 통해 수행한다면 시스템에 부정적인 영향을 미치지 않고 쉽게 수행할 수 있습니다.
이 가이드가 RHEL 7 시스템을 CentOS 7로 전환하는 데 도움이 되길 바랍니다!