CentOS7からOracleLinuxへの移行方法

# はじめに

昨年に[CentOSのサポートが終了してCentOS Streamに切り替わる](https://qiita.com/yamada-hakase/items/1629d511ab4199d253b4)ことが発表されましたが、まだCentOSを使っている方も多いと思います。

私もその一人ですが、近い将来にCentOSから他のOSへ移行する時に備えて移行先となるOSを探してみたところ、RHEL系だとOracle Linuxが有力な候補の一つであることが分かりました。

また、Oracle社からの「CentOSの代替をお探しですか？」というメールの中に、[CentOSからOracle Linuxへの移行方法のウェビナーのリンク](https://youtu.be/Cr73Ln-05wY)が記載されていました。

そこで今回は、このウェビナーの手順に沿ってCentOSからOracle Linuxに移行する方法を確認すると同時に、プラスアルファで幾つかの検証を実施した結果を備忘録として記事にまとめてみました。

# 検証環境

* OS
 * CentOS 7.7（ビルド1908）
* マシン（Hyper-V上の仮想マシン）
 * vCPU：2コア
 * RAM：2GB
 * HDD：16GB

# 移行作業の概要

移行作業は以下の3ステップに分けられます。
対象サーバーがインターネットに接続できる環境であれば、スクリプトを実行するだけで移行作業を終えられるのが大きな特徴です。

1. 移行用スクリプトのダウンロード
1. 移行用スクリプトの権限変更
1. 移行用スクリプトの実行

# 移行手順

## 現在のOSバージョンの確認

* Oracle Linuxに切り替える前に、以下のコマンドでOSバージョンを確認しておきます。

```
[root@localhost ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
```

## 移行用スクリプトのダウンロード

* ウェビナーの動画に従って、以下のコマンドで移行用スクリプトをダウンロードしましたが...

```
[root@localhost ~]# curl -O https://linux.oracle.com/switch/centos2ol.sh
```

* ダウンロードしたファイルを開いて見ると、スクリプトの保管場所が移動したと書かれていました。

```text:centos2ol.sh
#
# This script has moved to https://github.com/oracle/centos2ol
#
```

そこで上記のgithubのリポジトリから「centos2ol.sh」というファイルを探し、「 https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh 」からスクリプトをダウンロードしました。

```
[root@localhost ~]# curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
```

## スクリプトの実行

* 以下のコマンドで、移行用スクリプトに実行権限を付与した上で移行スクリプトを実行します。
* 今回の検証環境はHyper-V上に構築した2vCPUの仮想マシンでしたが、5分弱でスクリプトの実行が完了しました。

```
[root@localhost ~]# chmod +x centos2ol.sh
[root@localhost ~]# time ./centos2ol.sh
...
real 4m47.927s
user 3m25.483s
sys 0m34.115s
```

## 移行後のOSバージョンの確認

* 以下のコマンドで、Oracle Linuxに切り替えた後のOSバージョンを確認しておきます。

```
[root@localhost ~]# cat /etc/os-release
NAME="Oracle Linux Server"
VERSION="7.9"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Oracle Linux Server 7.9"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:9:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.9
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.9
```

# 検証：追加リポジトリの扱い

* CentOSからOracle Linuxへ移行するにあたり、標準リポジトリも変更となります。
* そこで、追加リポジトリの扱いがどのようになるかを検証してみました。

## 検証内容

1. Oracle Linux上で追加リポジトリ（epel）を利用できるか？
1. CentOS上で設定した追加リポジトリ（epel）を、Oracle Linuxに移行後も利用できるか？

## 検証1：追加リポジトリの利用可否

* 以下のコマンドを実行することで、Oracle Linux上でも追加リポジトリ（epel）を利用してパッケージのインストールが出来ることを確認しました。

```
[root@localhost ~]# yum-config-manager --enable epel
[root@localhost ~]# sudo yum install
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
[root@localhost ~]# yum install jq -y
...
完了しました!
```

## 検証2：CentOS上で設定した追加リポジトリの引き継ぎ

* CentOS上で追加リポジトリの設定をした後、さらに上記の移行用スクリプトを使ってOracle Linuxに移行しましたが、Oracle Linuxへ移行後も追加リポジトリの設定を利用できることを確認しました。

```
★CentOS上で追加リポジトリを設定
[root@localhost ~]# yum install epel-release -y

★Oracle Linux上で追加リポジトリ上のパッケージをインストール
[root@localhost ~]# yum install jq -y
...
完了しました!
```

# まとめ

* CentOS7系から別のRHEL系へ移行するのであれば、おそらくOracle Linuxへの移行が最も簡単です。
 * 正直な所、スクリプトを実行するだけで移行が完了するとは思いませんでした。
* 移行時に追加リポジトリの設定が消失することもなく、移行後に追加リポジトリを使う事も可能です。
 * 移行時に設定が消失するかと思っていたので、この結果は意外でした。


# 参考URL

* [5 Easy Steps to Switch from CentOS to Oracle Linux](https://youtu.be/Cr73Ln-05wY)
 * CentOSからOracle Linuxへの移行方法のウェビナー（※YouTubeの動画）です。