CentOSのサポート終了に伴うElevateを使用したアップグレードの方法

Elevateを使用して、CentOS7からAlmaLinux8へアップグレードしてみました。そのときの手順や注意点、アップグレード後の状況などをお伝えします。

Elavateを使用してCentOS7をアップグレードしようとしたきっかけ

まず、今回Elavateを使用してCentOS7をアップグレードしようとしたきっかけは、CentOS7のサポート期間が2024年6月末に迫っている事になります。AlmaLinux8のOS環境を構築して、そちらに移行するのが一般的ですが、Elavateを使用すると簡単にアップグレードできるという情報もあったため、運用に影響のないサーバで試してみることにしました。

まずは結論をお伝えします

まず結論から述べますと、アップグレードは確かに簡単に出来ます。しかしながら、同じRedHat系のOSとはいえ、やはりバージョンなども異なりますので、可能ならElavateを使用してアップグレードするのはやめておいた方が良い、というのが私の見解です。

具体的には、CentOS7にあって、AlmaLinux8にないサービスがあるとうまく動きません。(当たり前ですが。そのサービスは個別に再インストールする必要ありです)また、サーバで稼働しているプロセスもアップグレード前よりも多くなりました。こちら監視サービスで全体のプロセス数を監視していたのですが、アップグレード後にアラートが出るようになり気が付きました。最後にCentOS7は数年前に構築したので、やはりその当時の流行りというか、その設定で構築されてます。それがそのまま移行されるので今の時代、これからの時代にあっているのか微妙なところです。

上記のように大きな問題ではありませんが、ちょっとモヤっとするぐらいなら、新しい環境にAlmalinuxを最小構成でインストールして、必要なサービスのみを移行した方が良いと感じました。

それでは、以下に具体的にどのようにアップグレードしたか、手順を記載します。

アップグレード手順

ここでは、AlamaLinuxから提供されている「Elevate」を使います。手順は公式のクイックスタートガイドを参考にしています。まず、Centos7を最新までアップデートします。

上記のとおり、最新版にアップデートができましたら、Elevateをインストールします。

アップグレード前のチェックを以下のコマンドで実行します。5分程度かかりました。

私の環境では、2つの問題点が指摘されました。1つはNFSはアップグレードできないとの事。2つ目はアンサーファイルが必要との事。思ったよりエラーは少なかったです。

NFSは旧環境で使用していましたが、新環境では不要で、アップグレードの必要がありませんでしたので、下記の通りアンインストールをしました。

アンサーファイルについては、なんだかよくわかりませんが、ググって出てきた情報を参考に、以下のコマンドを実行して対処しております。

これらの対処が済みましたら、もう一度、leapp preupgrade を実行しました。

Message: Unable to install RHEL 8 userspace packages.
Summary:
(略)
 Stderr: Host and machine ids are equal (8eeb8bd4cbb84683912f4863cb4ee6e1): refusing to link journals
 Failed to synchronize cache for repo 'almalinux8-highavailability', ignoring this repo.
 Failed to synchronize cache for repo 'almalinux8-extras', ignoring this repo.
 Failed to synchronize cache for repo 'almalinux8-appstream', ignoring this repo.
 Failed to synchronize cache for repo 'almalinux8-powertools', ignoring this repo.
 Failed to synchronize cache for repo 'almalinux8-resilientstorage', ignoring this repo.
 Failed to synchronize cache for repo 'almalinux8-baseos', ignoring this repo.
 Error: Unable to find a match: dnf dnf-command(config-manager)

すると上記のようなエラーが出ました。こちらはどうもrepoデータにアクセスできないとの事で、よく考えると、このサーバはproxyを使用しないと外部にアクセスできない環境であることを思い出しました。ですので、以下のコマンドを実行してproxyを使用するように設定します。ちなみにdnf.confにプロキシの設定を記載しているだけではNGのようです。

こちらを設定して、再度 leapp preupgrade を実行し、エラーが出なくなったので、以下のコマンドを実行して、アップグレードを行いました。約10分程度かかった後、OSを再起動しました。

OSが再起動されると、アップグレード処理が開始され、こちらも約10分程度でOSが起動してきました。ログインして、バージョンを確認してみると、

となっており、簡単にCentOS7からAlmalinux8にアップグレードが完了しました。

アップグレード後に実施した事

まず、古いカーネルの削除と、今回のアップグレードで使用したパッケージを削除しました。

ディスクの使用容量は、アップグレード前と比較して増えていました。パッケージ自体はすべてAlmalinxのものになっていましたので、単純に新OSの方が容量を必要とするのかもしれませんが、新規にOSを最小インストールで構築した方が、不要なパッケージを入れなくて(残さなくて)良いと感じました。

その他、監視用のサービスが動いていなかったので、dnfコマンドで再インストールを実行しました。あと念のため、dnf update を実行して、最新にアップデートしております。

まとめ

ここでは、Elavateを使用してアップグレードする手順を記載しました。確かに簡単にアップグレード出来ます。しかしながら、いろんな意味での「ゴミ」が残ってしまいますので、可能ならElavateを使用してアップグレードせずに、新しい環境を構築して移行したた方が良い、と考えます。作業時間は、私の場合は、エラーが少なかったので、そこまで時間がかかりませんでしたが、環境によってはもっと時間がかかる可能性もあるかと思います。

また、万が一に備えてアップグレード前にバックアップを取得しておくこともお勧めします。

約1年ほど運用しましたが、アップグレード後は、何かトラブルが発生したり、サーバやサービスが止まったり、ということは発生しておりません。ご参考になれば幸いです。

今回はここまでです。最後までお読みいただきありがとうございました。