0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOS7からAlmalinux8へ移行した際の手順

Posted at

概要

先日、CentOS7で動いていたサーバをAlmalinux8へ移行しました。
以降にあたっていくつか躓いた点があったので、共有として残します。

Almalinuxの公式ガイド通りの手順になりますが、
実施にあたって調べた点がいくつかあるので、それらを解説しながら記載します。

移行手順

STEP1: 既存システムを更新

まず既存システムを最新バージョンへアップデートします。
これは、おそらく後述のOSの移行プログラム(leapp)の実行環境として最新のCentOS7環境が推奨されるための手順です。

.bash
# yumのリポジトリを更新
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo

# 既存システムを更新
sudo yum upgrade -y

# 再起動
sudo reboot

curlの処理は何をやっている?

  • 1行目のcurlはyumの参照先をAlmalinux提供のリポジトリになるよう書き換えています。(CentOS7のリポジトリは既に閉鎖されて使えないため)

yum updateとyum upgradeの違い

  • 結論、どちらも変わらないようです。
  • yum upgradeだと不要なパッケージを削除しますが、デフォルト設定ではyum updateでも削除されるとのこと

STEP2: leappをインストールする

OSの移行プログラム(leapp)をインストールします。

.bash
# almalinuxのリポジトリを追加
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm

# leappのパッケージをインストール
sudo yum install -y leapp-upgrade leapp-data-almalinux

STEP3: leappを実行

いよいよleappを実行しますが、事前チェックであるleapp preupgradeは必ず失敗します。

.bash
# アップグレード前のチェックを実行、1回目は必ず失敗する
sudo leapp preupgrade

表示されるエラーは以下

.bash
============================================================
                     UPGRADE INHIBITED
============================================================

Upgrade has been inhibited due to the following problems:
    1. Inhibitor: Missing required answers in the answer file
Consult the pre-upgrade report for details and possible remediation.

/var/log/leapp/answerfileを見ると下記の記述がありました。
pam_pkcs11というモジュールはRHEL 8で廃止されたため、アップデートに時に削除して良いか聞かれています。

.bash
cat /var/log/leapp/answerfile
[remove_pam_pkcs11_module_check]
# Title:              None
# Reason:             Confirmation
# =================== remove_pam_pkcs11_module_check.confirm ==================
# Label:              Disable pam_pkcs11 module in PAM configuration? If no, the upgrade process will be interrupted.
# Description:        PAM module pam_pkcs11 is no longer available in RHEL-8 since it was replaced by SSSD.
# Reason:             Leaving this module in PAM configuration may lock out the system.
# Type:               bool
# Default:            None
# Available choices: True/False
# Unanswered question. Uncomment the following line with your answer
# confirm =

この「remove_pam_pkcs11_module_check」に関する問題は必ず発生するらしく、AlmaLinuxの移行ガイドに対応方法が載っているのでその方法で対処します。

.bash
# 前述のanswerfileの問いかけにTrueで回答
sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True

移行ガイドには、よく発生するエラーの対処方法として下記も載っていましたが、自分の環境ではこれは不要でした。
answerfileに当該の対応が必要な旨の記述があったら、こちらを実行すべきかと思います。

# pata_acpiというカーネルモジュールをアンロード
sudo rmmod pata_acpi

# rootでSSHログインできるように変更
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config

上手くいっていればこの時点で、leappが成功するようになっているので実施します。

.bash
# OS移行を実施
sudo leapp upgrade
# 再起動
sudo reboot

# 再起動後、OSがアップデートされたかを確認
cat /etc/os-release

遭遇したエラー

以下はアップデートまでに遭遇したエラーとその際の対応方法です。

1. mysqlのアップデートエラー

yum upgrade -y実行の際に以下のエラーが発生
どうやらパッケージのインストールに使うGPGキーが古いらしい

community/packages/mysql-community-client-5.7.44-1.el7.x86_64.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 3a79bd29: NOKEY
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql から鍵を取得中です。


The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


 Failing package is: mysql-community-client-5.7.44-1.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

対応としてGPGキーの再インポートを行いました。

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2. libwebpパッケージが競合する

leapp upgradeを実行した所下記のエラーが表示されました。

leappはlibwebpパッケージをインストールしようとしていますが、libwebp7というRemiリポジトリ由来のパッケージが競合しているため、処理が進行できません。

RPMパッケージをカスタムインストールした場合や、サードパーティのリポジトリからパッケージを導入している場合、同様の競合が発生することがあるようです。

STDERR:
Error: Transaction test error:
  file /usr/lib64/libwebp.so.7 from install of libwebp-1.0.0-9.el8_9.1.x86_64 conflicts with file from package libwebp7-1.0.3-2.el7.remi.x86_64
  file /usr/lib64/libwebpdecoder.so.3 from install of libwebp-1.0.0-9.el8_9.1.x86_64 conflicts with file from package libwebp7-1.0.3-2.el7.remi.x86_64
  file /usr/lib64/libwebpdemux.so.2 from install of libwebp-1.0.0-9.el8_9.1.x86_64 conflicts with file from package libwebp7-1.0.3-2.el7.remi.x86_64
  file /usr/lib64/libwebpmux.so.3 from install of libwebp-1.0.0-9.el8_9.1.x86_64 conflicts with file from package libwebp7-1.0.3-2.el7.remi.x86_64

対応としては、競合元になっているパッケージを削除して、OS移行後に再度インストールしました。

他のパッケージで発生した場合でもこうして、一旦削除→再インストールをするしかないと思います。

# libwebp7を削除、この時依存関係の整理でphp-gdも削除される
sudo yum remove libwebp7

# OS移行後に再度インストールを行う
sudo yum install libwebp7 --enablerepo=remi-php70
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?