Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

従来のネットワークスクリプトからネットワーク設定を手動で移行する方法

はじめに

leappコマンドを使ったRed Hat Enterprise LinuxのOSアップグレード時に以下のようなメッセージが表示されOSのアップグレードがブロックされることがあります。

Risk Factor: high (inhibitor)
Title: Network configuration for unsupported device types detected
Summary: RHEL 9 does not support the legacy network-scripts package that was deprecated in RHEL 8 in favor of NetworkManager. Files for device types that are not supported by NetworkManager are present in the system. Files with the problematic configuration:
    - /etc/sysconfig/network-scripts/ifcfg-em1

ifcfg-rh形式の設定ファイルを使っていることが原因のようです。
公式のドキュメントにifcfg-rh形式からkeyfile形式への設定移行方法(※1)があるものの、アップグレード元がRed Hat Enterprise Linux 8.6である場合、nmcliコマンドのmigrateオプションが実装されていないため、公式ドキュメント通りに自動で移行することは不可です。

そこで、手動でkeyfile形式に移行する方法を記載します。

手動でkeyfile形式に移行する

  • 作業前の状況(ifcfg-rh形式)

/etc/sysconfig/network-scripts/ifcfg-em1

DEVICE=em1
BOOTPROTO=static
BROADCAST=192.0.2.255
IPADDR=192.0.2.1
NETMASK=255.255.255.0
NETWORK=192.0.2.0
ONBOOT=yes

上記のファイルをkeyfile形式に移行してみましょう。ファイルの配置場所、内容が変更になります。

  • keyfile形式への変換

/etc/NetworkManager/system-connections/em1.nmconnection

[connection]
id=em1
uuid=********-****-****-****-************
type=ethernet
interface-name=em1
timestamp=**********

[ethernet]

[ipv4]
address1=192.0.2.1/24
method=manual

[ipv6]
method=ignore

[proxy]

設定ファイル内のuuidは下記コマンドで確認できます。

# nmcli con show "System em1" | grep uuid

timestampも下記コマンドで確認した値を入力します。

# TZ=Asia/Tokyo date +%s

最後に、ifcfg-rh形式のファイルを削除します。
必要に応じてOSの再起動等を実施し、ネットワークインタフェースが有効になっていることを確認します。


参考資料

※1 RHEL 8 to RHEL 9: inplace upgrade fails at "Network configuration for unsupported device types detected"

https://access.redhat.com/solutions/7009239

RHELのネットワーク設定でのifcfg-rhからkeyfileへの移行

https://rheb.hatenablog.com/entry/2023/04/25/091647