ホーム > カテゴリ > サーバー構築・運用・Linux >

CentOS7からRocky Linux8/9へ移行する [マイグレーション]

CentOSで各種サーバー構築(目次)

今回はCentOS7系からRocky Linux8/9へOSを移行(マイグレーション)する方法をご紹介します。

Red Hat系のCentOS7のサポート期限は2024/6/30です。移行先には同じ系列のRocky Linux、AlmaLinux、Oracle Linux、MIRACLE Linuxの4つに絞り込めると思いますが、Rocky LinuxはCentOSの初代創設者であるGregory Kurtzer氏が携わっているので個人的にも推奨となります。

※既存システムが小規模ならばUbuntu(Debian系)も候補になります。

CentOS7系からRocky Linux8へマイグレーションする

Rocky Linuxの公式から移行ツールが準備されています。

https://docs.rockylinux.org/ja/guides/migrate2rocky/

問題点として2023年1月時点ではCentOS8.5 or CentOS8系でないと移行ツールが正常に動作しません。実行してもエラーが表示されて処理を進めることは出来ません。

次の章へ進みます。

CentOS7系からCentOS8系へアップグレードする

CentOS7からCentOS8へのアップグレードはCentOSの公式では用意されていません。非公式のユーザーによるアップグレード手法はネット上に存在しますが、そのほとんどは正常にアップグレードできません。

言い換えると過去には動作していたが2023年1月現在では動作しません。

2-3時間かけて調査したのですが epel-release-8-7.el8.noarch このファイルが存在すればCentOS7からCentOS8へアップグレードできると思われます。ただし、Fedora Projectにあるファイル倉庫にはありません。

https://dl.fedoraproject.org/pub/epel/

https://archives.fedoraproject.org/pub/archive/epel/

アップグレード用のコマンドで言うとこの部分です。

sudo dnf -y upgrade https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

epel-release-latest-8.noarch.rpmのlatestは最終版なので最新版をひっぱてきます。そこで、Fedora Projectにある古いファイルを探しても見つかりませんでした。意図的に残してない可能性は否定できません。

この時点で私は次の手段に移ります。

新規にRocky Linuxをインストールする

最終的にこの手法が安全・安心・安定で良いと思われます。

私のケースだとCentOSでRuby on Rails、Django、Laravel、CakePHPのWebフレームワークを稼働させていますが、これらの開発環境はUbuntu(Debian系)を使用しています。基本はどのOSに移行しても動作します。

この他に重要なことが私の環境にはあります。

Webサーバー上で、改良した「TensorFlow Lite」を用いて学習済みモデルで推論しています。そうなんです。AI(人工知能)を動作させているんです。

https://www.petitmonte.com/ai/

これにはlibtensorflow_framework.soなどの「.so」(共有ライブラリ)が30個ぐらいあるのでこれを動作させるにはRedHat系(CentOS/Rocky Linux/AlmaLinux/MIRACLE LINUXなど)じゃないと厳しいかも知れません。

Debian系で.soファイルが動作するのかテストしていませんが、Linuxはlinux_aarch64.whl 、linux_armv7l.whl、linux_x86_64.whlの3種類ありますので同じlinux_x86_64系ならば動作する可能性はあります。

※最終的にはCentOSからRocky Linuxへの移行は全て動作確認済み。

最後に

クラウド(AWSなど)やVPS(ConoHaなど)で新規にRocky Linuxをインストールする場合は既存サーバー(OS)を丸ごとイメージ保存して、新たに新規サーバーを作成してRocky Linuxをインストールして環境を構築します。

環境が整ったら、それもイメージ保存して、既存サーバーにそのイメージを割り当てればマイグレーションの完了となります。

私のケースだとストレージ使用容量が36GB->16.65GBになりました。

注意事項

Webフレームワークの環境テストでは、ドメインやSSLは付与せずに

http://IPアドレス/

でテストすると思われます。Chromeだと自動的にhttpsになる場合が多いのでIE11でやると良いです。

その他にRuby on Railsではapplication.rbのconfig.hostsを削除。 production.rbのconfig.force_sslをfalseにする必要があります。Djangoではsettings.pyのALLOWED_HOSTSを削除しましょう。

あと、Let's Encrypt(Certbot)でSSLの証明書を再発行する場合は、新規同様の操作で再取得すればOK。新規と再取得のコマンドは同じです。





関連記事



公開日:2023年01月10日 最終更新日:2023年01月11日
記事NO:02912