第5章 アンダークラウドのオペレーティングシステムのアップグレード

director をアップグレードする前に、アンダークラウドのオペレーティングシステムを Red Hat Enterprise Linux 7 から Red Hat Enterprise Linux 8 にアップグレードする必要があります。このオペレーティングシステムのアップグレードの一環として、Red Hat OpenStack Platform 13 のパッケージを削除し、続いて Leapp ユーティリティーを実行してシステムパッケージをアップグレードする必要があります。このパッケージの削除およびオペレーティングシステムのアップグレードは、アンダークラウドのデータベースには影響を及ぼしません。オペレーティングシステムのアップグレードが完了したら、Red Hat OpenStack Platform 16.1 バージョンの director パッケージを再インストールします。

5.1. Red Hat OpenStack Platform director パッケージの削除

Leapp ユーティリティーを実行する前に、Red Hat Enterprise Linux 7 に関連付けられた Red Hat OpenStack Platform 13 パッケージを削除します。これらのパッケージ名には、リリースに関する接尾辞 el7ost が使用されます。一部の el7ost は、subscription-manager および Leapp ユーティリティーの依存関係としてシステム上に残ります。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. アンダークラウド上の主要 OpenStack サービスを無効にします。

    $ sudo systemctl stop openstack-* httpd haproxy mariadb rabbitmq* docker xinetd
  3. OpenvSwitch およびアップグレードに必要な特定の Python 2 パッケージは除き、アンダークラウドから主要 OpenStack サービスを削除します。

    $ sudo yum -y remove *el7ost* galera* haproxy* \
        httpd mysql* pacemaker* xinetd python-jsonpointer \
        qemu-kvm-common-rhev qemu-img-rhev rabbit* \
        redis* \
        -- \
        -*openvswitch* -python-docker -python-PyMySQL \
        -python-pysocks -python2-asn1crypto -python2-babel \
        -python2-cffi -python2-cryptography -python2-dateutil \
        -python2-idna -python2-ipaddress -python2-jinja2 \
        -python2-jsonpatch -python2-markupsafe -python2-pyOpenSSL \
        -python2-requests -python2-six -python2-urllib3 \
        -python-httplib2 -python-passlib -python2-netaddr -ceph-ansible
  4. /etc/httpd および /var/lib/docker ディレクトリーからコンテンツを削除します。

    $ sudo rm -rf /etc/httpd /var/lib/docker

5.2. アンダークラウドでの Leapp アップグレードの実施

Leapp ユーティリティーをインストールして実行し、オペレーティングシステムを Red Hat Enterprise Linux 8 にアップグレードします。

手順

  1. アンダークラウドに stack ユーザーとしてログインします。
  2. Leapp ユーティリティーをインストールします。

    $ sudo yum install leapp
  3. ナレッジベースのアーティクル「RHEL 7 から RHEL 8 へのインプレースアップグレード時に Leapp ユーティリティーで必要なデータ」に添付されている追加の必須データファイル (RPM パッケージの変更および RPM リポジトリーマッピング) をダウンロードし、それらのファイルを /etc/leapp/files/ ディレクトリーに置きます。
  4. Red Hat サブスクリプションを更新します。

    • アンダークラウドの登録に Red Hat カスタマーポータルを使用している場合、現在のサブスクリプションをリフレッシュし、Red Hat Enterprise Linux 8.2 コンテンツへのアクセス権限を取得します。

      $ sudo subscription-manager refresh
    • アンダークラウドの登録に Red Hat Satellite サーバーを使用している場合は、アンダークラウドを Red Hat OpenStack Platform 16.1 のアクティベーションキーに関連付けられたコンテンツビューに再登録します。

      $ sudo subscription-manager register --force --org ORG --activationkey ACTIVATION_KEY --release 8.2
      注記

      Red Hat OpenStack Platform 16.1 用に作成するコンテンツビューには、Red Hat Enterprise Linux 8.2 のコンテンツが含まれている必要があります。

  5. Red Hat OpenStack Platform 16.1 では、新しいバージョンの Open vSwitch が使用されます。to_remove および to_install トランザクションファイルにより、Open vSwitch のバージョンを置き換えます。

    $ 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-ansible を維持します。

    $ echo 'ceph-ansible' | sudo tee -a /etc/leapp/transaction/to_keep
  7. Leapp によるアップグレードプロセスを開始します。

    $ sudo 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

    --enablerepo オプションを使用して、Leapp によるアップグレードプロセス中に有効にするリポジトリーを設定します。特に新しいバージョンの Open vSwitch を使用する場合は、Red Hat OpenStack Platform 16.1 への移行を円滑に行うために、これらのリポジトリーを追加する必要があります。

  8. leapp upgrade コマンドが正常に完了するのを待ちます。
  9. ルートディレクトリーに空の .autorelabel ファイルを作成します。

    $ sudo touch /.autorelabel

    リブート後、SELinux はこのファイルを検出し、自動的にファイルシステムのラベルを変更します。

  10. アンダークラウドをリブートします。

    $ sudo reboot