CentOS 7에서 Oracle Linux 7로 전환

소개

주: CentOS 7은 2024년 6월 30일에 EOL(수명 종료)에 도달했습니다. 이 상황은 CentOS의 회사 인 Red Hat이 더 이상 운영 체제에 대한 보안 업데이트 또는 버그 수정을 제공하지 않는다는 것을 의미합니다.

다음 사용지침서에서는 CentOS 특정 패키지를 제거하거나 해당하는 Oracle Linux 패키지로 교체하여 CentOS 7 인스턴스를 Oracle Linux 7로 자동으로 전환하는 단계별 절차를 제공합니다. GitHub의 Oracle centos2ol 저장소에 있는 README.md는 이 자습서에 사용된 스크립트가 진행 중인 작업이며 가능한 모든 구성을 처리하도록 설계되지 않았음을 나타냅니다.

스크립트가 시스템을 성공적으로 변환할 수 없는 경우 이 프로세스를 시작하기 전에 시스템의 전체 백업이 있는지 확인하십시오.

프로젝트의 README.md 파일에서 centos2ol 프로젝트에 대한 최신 세부정보를 검토합니다.

목표

이 자습서에서는 다음 작업을 수행합니다.

필요 조건

CentOS 버전을 확인합니다.

  1. 터미널을 열고 instance에 연결합니다.

  2. CentOS 버전을 가져옵니다.

    sudo cat /etc/redhat-release
    
    sudo cat /etc/os-release
    

    이 두 명령은 인스턴스가 CentOS 7을 실행 중임을 보여줍니다.

비표준 커널 확인

  1. yum를 사용하여 설치된 커널 목록을 가져옵니다.

    sudo yum list installed kernel
    

    이 목록에는 yum를 사용하여 설치된 모든 커널이 표시됩니다. 모든 비표준 커널(예: 기본 또는 업데이트 저장소에서 설치 및 제공되지 않은 커널)을 제거하는 것이 좋습니다. centosplus 커널 제거를 포함합니다.

  2. grubby를 사용하여 설치된 다른 커널 목록을 가져옵니다.

    sudo grubby --info=ALL | grep ^kernel
    

    출력 예:

    [oracle@centos-7 ~]$ sudo grubby --info=ALL | grep ^kernel
    kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
    kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
    kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
    

    리스트에는 사용하도록 구성된 모든 커널이 표시됩니다. 다시 말하지만 모든 비표준 커널을 제거하는 것이 좋습니다.

Yum을 사용하여 비표준 커널 제거

GRUB2 BootHole 취약성으로 인해 Oracle Linux Secure Boot shim은 Oracle에서 서명한 커널만 부트할 수 있으며 기본 CentOS 커널만 대체할 수 있습니다. SecureBoot가 사용 안함으로 설정된 경우 시스템에 영향을 주지 않지만 나중에 사용으로 설정하면 부트할 수 없게 됩니다. 이러한 이유로 모든 비표준 커널(예: CentOSPlus 커널을 포함하여 base 또는 updates 저장소에서 제공하지 않는 설치된 커널)을 제거하는 것이 좋습니다.

주: 시스템에 위 설명을 기반으로 하는 비표준 커널이 없는 경우 이 섹션을 건너뜁니다. 시스템에 커널이 하나만 설치된 경우 yum를 사용하여 커널을 제거하지 마십시오. 유일한 작동 커널 또는 잘못된 커널의 커널 항목을 제거하면 시스템이 부트되지 않을 수 있으며 깨진 서버를 수정하려면 단일 사용자 모드로 부트해야 합니다.)

  1. 비표준 커널을 제거합니다.

    sudo yum remove <KERNEL>
    

    여기서 <KERNEL>rpm -q kernel에서 제공하는 전체 패키지 이름입니다.

Grubby로 비표준 커널 제거

grubby는 grub 부트 로더의 구성 파일에 대한 정보를 업데이트하고 표시하기 위한 명령줄 도구입니다. 이 도구를 사용하면 관리자가 yum 외부에 설치된 커널을 사용 안함으로 설정할 수 있습니다.

주: 이전 섹션의 설명에 따라 시스템에 비표준 커널이 없는 경우 이 섹션을 건너뜁니다. 시스템에 커널이 하나만 설치된 경우 yum를 사용하여 커널을 제거하지 마십시오. 유일한 작동 커널 또는 잘못된 커널의 커널 항목을 제거하면 시스템이 부트되지 않을 수 있으며 깨진 서버를 수정하려면 단일 사용자 모드로 부트해야 합니다.)

  1. 설치된 각 커널의 부트 항목에 지정된 인덱스를 가져옵니다.

    sudo grubby --info=ALL | grep -E "^kernel|^index"
    

    출력 예:

    [oracle@centos-7 ~]$ sudo grubby --info=ALL | grep -E "^kernel|^index"
    index=0
    kernel=/boot/vmlinuz-3.10.0-1160.76.1.el7.x86_64
    index=1
    kernel=/boot/vmlinuz-3.10.0-1160.el7.x86_64
    index=2
    kernel=/boot/vmlinuz-0-rescue-281810806a454564906c048d496729db
    index=3
    
  2. 비표준 커널의 부트 항목을 제거합니다.

    grubby --remove-kernel=<MENU_INDEX>
    

    여기서 <MENU_INDEX>는 이전 명령의 출력에서 반환된 인덱스 값입니다.

YUM 구성 확인

  1. 사용으로 설정된 저장소 목록을 가져옵니다.

    sudo yum repolist
    

    출력 예:

    [oracle@centos-7 ~]$ sudo yum repolist
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: ftp.plusline.net
     * epel: mirror.imt-systems.com
     * extras: mirror.imt-systems.com
     * updates: ftp.plusline.net
    repo id                   repo name                                       status
    base/7/x86_64             CentOS-7 - Base                                 10072
    docker-ce-stable/7/x86_64 Docker CE Stable - x86_64                         183
    epel/x86_64               Extra Packages for Enterprise Linux 7 - x86_64  13738
    extras/7/x86_64           CentOS-7 - Extras                                 515
    updates/7/x86_64          CentOS-7 - Updates                               4383
    zfs/7/x86_64              ZFS on Linux for EL7 - dkms                        55
    repolist: 28946
    
  2. 설치된 모든 패키지를 업데이트합니다.

    sudo yum -y upgrade
    

비CentOS 저장소 제거 또는 사용 안함

모든 비CentOS 저장소를 사용 안함으로 설정합니다. 이 단계를 수행하면 전환 중 타사 저장소와의 패키지 충돌을 방지할 수 있습니다. 전환 후 저장소를 다시 사용으로 설정할 수 있습니다.

  1. CentOS가 아닌 저장소를 사용 안함으로 설정합니다.

    sudo yum-config-manager --disable <REPOSITORY_NAME>
    

    <REPOSITORY_NAME>을 시스템에서 사용으로 설정된 비CentOS 저장소의 저장소 이름으로 바꿉니다.

/var/cache에서 사용 가능한 공간 확인

  1. 디스크 공간 사용량 보고서를 가져옵니다.

    df -h
    

    주: 이 예에서는 /var/cache/ 마운트 위치 아래에 있으며 35G를 사용할 수 있습니다. 이 시스템에는 centos2ol 프로젝트에서 권장하는 5G 무료가 있습니다.

Cron에서 자동 업데이트 확인

관리자는 여러 가지 방법으로 자동 업데이트를 사용으로 설정할 수 있습니다. 이 절에서는 yum를 직접 실행하거나 스크립트를 사용하여 cron 작업을 확인합니다. 전환 프로세스 중 실행되지 않도록 이러한 작업을 사용 안함으로 설정합니다(있는 경우).

  1. 루트의 cron 작업을 나열합니다.

    sudo crontab -l
    
  2. 사용자의 cron 작업을 나열합니다.

    sudo crontab -u oracle -l
    
  3. 일별, 시간별, 주별 및 월별 cron 작업을 나열합니다.

    sudo ls -al /etc/cron*
    

    그런 다음 less 또는 선택한 편집기를 사용하여 개별 파일을 확인합니다.

    주: 이름에 yum-cron가 포함된 파일은 yum-cron 서비스에 의해 관리됩니다. 튜토리얼의 다음 섹션에서 비활성화 문제를 해결하겠습니다.

  4. /etc/crontab의 내용을 나열합니다.

    sudo less /etc/crontab
    

YUM Cron 업데이트 사용 안함

업데이트를 자동으로 적용하는 또 다른 방법은 yum-cron를 사용하는 것입니다.

  1. yum-cron 패키지를 확인합니다.

    sudo yum list installed yum-cron
    

    출력 예:

    [oracle@centos-7 ~]$ yum list installed yum-cron
    Loaded plugins: fastestmirror, langpacks
    Determining fastest mirrors
     * base: ftp.plusline.net
     * epel: ftp.plusline.net
     * extras: ftp.plusline.net
     * updates: ftp.rz.uni-frankfurt.de
    Installed Packages
    yum-cron.noarch                    3.4.3-168.el7.centos                    @base
    

    출력에 시스템에 설치되지 않은 yum-cron 패키지가 표시되면 다음 섹션으로 건너뜁니다.

  2. yum-cron systemd 서비스의 상태를 확인합니다.

    sudo systemctl is-enabled yum-cron
    sudo systemctl is-active yum-cron
    
  3. yum-cron systemd 서비스가 활성 상태이고 실행 중인 경우 사용 안함으로 설정합니다.

    sudo systemctl stop yum-cron
    sudo systemctl disable yum-cron
    

변환 스크립트 다운로드 및 실행

  1. GitHub에서 centos2ol.sh 스크립트를 다운로드합니다.

    스크립트를 얻는 가장 간단한 방법은 curl을 사용하는 것입니다.

    curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
    

    Git을 설치한 경우 clone 옵션을 사용하여 GitHub에서 저장소를 가져옵니다.

    git clone https://github.com/oracle/centos2ol.git
    
  2. centos2ol.sh 스크립트를 실행합니다.

    git clone를 사용한 경우 현재 작업 디렉토리를 centos2ol 디렉토리로 변경합니다.

    -h 옵션을 전달하여 스크립트에 대한 사용 옵션을 참조하십시오.

    sudo bash centos2ol.sh -h
    

    이제 스크립트를 실행하고 완료될 때까지 기다립니다.

    sudo bash centos2ol.sh
    

    프로세스의 일부로 기본 커널은 Oracle UEK(Unbreakable Enterprise Kernel)의 최신 릴리스로 전환되어 프로세스 스케줄러, 메모리 관리, 파일 시스템 및 네트워킹 스택에 대한 광범위한 성능 및 확장성을 향상시킵니다. 또한 기존 CentOS 커널을 엄격한 커널 버전 제한을 적용한 경우 특정 하드웨어 또는 응용 프로그램에 필요할 수 있는 동등한 RHCK(Red Hat Compatible Kernel)로 교체합니다.

  3. 시스템 재부팅

    sudo reboot
    

Oracle Linux로 시스템 전환 확인

  1. 터미널을 사용하여 다시 Instance에 연결합니다.

  2. 배포 버전 및 커널 세부정보를 확인합니다.

    cat /etc/os-release
    cat /etc/redhat-release
    uname -r
    

centos2ol GitHub 프로젝트에 기여하기

  1. 지원 받기.

    비보안 관련 버그 보고서, 질문 또는 개선 요청에 대한 GitHub 문제를 엽니다.

추가 정보

Oracle Linux 설명서
Oracle Linux 교육
Oracle Linux 교육 스테이션
Leapp를 통해 Oracle Linux 업그레이드

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.