私は、アプリケーション全体の一貫性を確保するために、いくつかのネットワークインタフェースの名前を変更するシステムを開発しています。インストール中にIPアドレスを設定するのが困難でした。いくつかのテストを実行して接続を設定しましたが、nmtui
2つのユースケースがあるようです。
自動命名インターフェース:
インターフェイス名にオペレーティングシステムで指定された名前(例eno1
)がある場合、接続設定は次の場所に保存されます。/etc/NetworkManager/system-connections/eno1.nmconnection
名前が変更されたインターフェイス:
インターフェイス名が変更されると(data
ファイルとして提供されるなど)、接続設定はファイルに保存されます。DEVICE
ifcfg-
/etc/sysconfig/network-scripts/ifcfg-data
どちらの場合も、ifcfg-
ファイルが存在します。の場合はeno1
ファイル設定MTU
とZONE
の場合はdata
ファイル設定NAME
とDEVICE
。
明らかな不一致がある理由とどちらの場合も、インターフェイスを事前設定する方法を説明できる人はいますか?
修正する:
いくつかの追加テストを実行し、NAME
設定が含まれているかどうかにかかわらず、デフォルト以外のものに設定されている限り、ifcfg
NetworkManagerはそのインターフェイスのIP設定を保存します。と元のインターフェイス名を入力すると、IP設定がファイルに保存されます。device
ifcfg
NAME
DEVICE
.nmconnection
答え1
名前が変更されたインターフェイスを効果的に事前設定する方法が見つからなかったため、今使用するプロセスは次のとおりです。
- インターフェイスの設定に ks
network
コマンドを使用しないでください。これにより、nmconnection 鍵ファイル形式のデフォルトのインターフェース名に基づいてネットワーク構成が構成されます。インストール中にインターフェイスが必要な場合は、これを行うことができます。とにかく後で削除します。 - 起動
%post
スクリプトから:- 新しいファイルシステム(インストールする必要がある場所
/mnt/sysimage
)からifcfg-
名前を変更したいインターフェイスのファイルを作成します。必要なデバイス名と接続名とともに、HWADDR
インターフェイスのMACアドレスが含まれています。DEVICE
NAME
network-config.sh
次の操作を行う最初の起動時に実行されるスクリプトを作成します。- 自動的に作成されたすべての接続を削除する
/etc/NetworkManager/system-connections
- ネットワーク構成の再読み込み(
nmcli conn reload
) - nmcli を使用した新しいデバイス名によるネットワークインターフェイスの設定
- インターフェイスの無効化と再有効化
network-config.sh
最初の起動時にのみ実行されるように起動スクリプトを変更します。
- 自動的に作成されたすべての接続を削除する
- 新しいファイルシステム(インストールする必要がある場所
最終結果は、名前が変更されたインターフェイスにIP設定が保存され、デフォルト名のインターフェイス/etc/sysconfig/network-scripts/ifcfg-*
が次の場所に設定されることです。/etc/NetworkManager/system-connections/*.nmconnection