5.2. 언더클라우드에서 Leapp 업그레이드 수행

Leapp 유틸리티를 설치하고 실행하여 운영 체제를 RHEL (Red Hat Enterprise Linux) 8로 업그레이드합니다.

사전 요구 사항

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. Leapp 유틸리티 및 jq를 설치합니다.

    $ sudo yum install leapp
    $ sudo yum install jq
  3. Leapp 유틸리티에 필요한 추가 데이터 파일(RPM 패키지 변경 및 RPM 리포지토리 매핑)을 다운로드하여 RHEL 7에서 RHEL 8로의 인플레이스 유틸리티에 필요한 추가 데이터 파일(RPM 패키지 변경 및 RPM 리포지토리 매핑)을 다운로드하여 이러한 파일을 /etc/leapp/files/ 디렉터리에 저장합니다.
  4. Red Hat 서브스크립션을 업데이트합니다.

    • 언더클라우드에서 등록을 위해 Red Hat 고객 포털을 사용하는 경우 현재 서브스크립션을 업데이트하여 Red Hat Enterprise Linux 8.2 콘텐츠에 액세스할 수 있습니다.

      $ sudo subscription-manager refresh
    • 언더클라우드에서 등록에 Red Hat Satellite Server를 사용하는 경우 RHOSP(Red Hat OpenStack Platform)16.1 활성화 키와 관련된 콘텐츠 뷰에 언더클라우드를 다시 등록합니다.

      $ sudo subscription-manager register --force --org ORG --activationkey ACTIVATION_KEY
      참고

      Red Hat OpenStack Platform 16.1에 대해 생성한 콘텐츠 뷰에는 Red Hat Enterprise Linux 8.2의 콘텐츠가 포함되어야 합니다.

  5. Red Hat OpenStack Platform 16.1은 최신 버전의 Open vSwitch를 사용합니다. Open vSwitch 버전을 to_remove 및 to_ install 트랜잭션 파일을 통해 대체합니다.

    $ echo 'openvswitch2.11' | sudo tee -a /etc/leapp/transaction/to_remove
    $ echo 'openvswitch2.13' | sudo tee -a /etc/leapp/transaction/to_install
  6. to_keep 트랜잭션 파일을 사용하여 업그레이드를 통해 Red Hat Ceph Storage 3 버전의 ceph-anible 을 유지합니다.

    $ echo 'ceph-ansible' | sudo tee -a /etc/leapp/transaction/to_keep
  7. RHEL 8에서 더 이상 지원되지 않는 커널 모듈을 조정합니다.

    $ if [ -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/kernel/checkkerneldrivers/files/removed_drivers.txt ]; then
        for module in pata_acpi floppy; do
            sudo sed -i "/^${module}$/d" /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/kernel/checkkerneldrivers/files/removed_drivers.txt
        done
    else
        for module in pata_acpi floppy; do
            jq ". | del(.data[] | select(.driver_name == \"${module}\"))" /etc/leapp/files/device_driver_deprecation_data.json | sudo tee /etc/leapp/files/device_driver_deprecation_data.json_modified
            mv /etc/leapp/files/device_driver_deprecation_data.json_modified /etc/leapp/files/device_driver_deprecation_data.json
        done
    fi
  8. leapp 응답 명령을 실행하고 Leapp 응답을 지정하여 pam_pkcs11 모듈을 제거합니다.

    $ sudo leapp answer --add --section remove_pam_pkcs11_module_check.confirm=True
  9. 선택 사항: TLS-Everywhere 아키텍처와 함께 환경을 배포하고 더 이상 사용되지 않는 authconfig 유틸리티를 사용하여 시스템에서 인증을 구성하는 경우 authselect 유틸리티를 사용하여 RHEL 8 시스템을 구성합니다.

    $ sudo leapp answer --add --section authselect_check.confirm=True

    Leapp 업그레이드 프로세스 중에 인증 구성에 대한 자세한 내용은 RHEL 7에서 RHEL 8로의 업그레이드에서 알려진 문제를 참조하십시오.

  10. LEAPP_DEVEL_TARGET_RELEASELEAPP_UNSUPPORTED 환경 변수를 설정하여 업그레이드할 RHEL 8 부 버전을 지정합니다. RHOSP 16.1의 경우 RHEL 8 부 버전을 8.2 로 설정해야 합니다.

    $ export LEAPP_UNSUPPORTED=1
    $ export LEAPP_DEVEL_TARGET_RELEASE=8.2

    LEAPP_ DEVEL 접두사가 있는 환경 변수를 사용할 때마다 LEAPP_ UNSUPPORTED 환경 변수를 사용해야 합니다.

  11. Leapp 프로세스에서 영구적인 네트워크 이름 행위자를 제거합니다.

    참고

    Leapp 업그레이드 프로세스를 수행하기 전에 네트워크 인터페이스 이름 이름을 변경하지 않으면 RHEL 8.2로 업그레이드한 후 인터페이스 이름이 변경될 수 있습니다. 네트워크 인터페이스 이름 이름을 바꾸는 방법에 대한 자세한 내용은 4.3절. “언더클라우드 노드에 예측 가능한 NIC 이름 사용” 을 참조하십시오.

    $ sudo rm -f /usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/persistentnetnamesdisable/actor.py
  12. Leapp 업그레이드 프로세스를 시작합니다.

    $ sudo -E leapp upgrade --debug --enablerepo rhel-8-for-x86_64-baseos-eus-rpms --enablerepo rhel-8-for-x86_64-appstream-eus-rpms --enablerepo fast-datapath-for-rhel-8-x86_64-rpms --enablerepo ansible-2.9-for-rhel-8-x86_64-rpms

    enable repo 옵션을 사용하여 Leapp 업그레이드 프로세스 중에 활성화하려는 리포지토리를 설정합니다. 특히 최신 버전의 Open vSwitch에서 Red Hat OpenStack Platform 16.1 전환을 용이하게 하려면 이러한 리포지토리를 포함해야 합니다.

  13. leapp upgrade 명령이 성공적으로 완료될 때까지 기다립니다.
  14. root 디렉토리에 empty .autorelabel 파일을 만듭니다.

    $ sudo touch /.autorelabel

    재부팅 후 SELinux는 이 파일을 감지하고 파일 시스템의 레이블을 자동으로 다시 지정합니다.

  15. 언더클라우드를 재부팅합니다.

    $ sudo reboot
  16. DNF 구성에 정의된 트랜잭션 제외에서 Leapp 패키지를 제거합니다.

    $ sudo dnf config-manager --save --setopt exclude=''