问题现象:
用户在 /etc/NetworkManager/NetworkManager.conf 文件中使用了keyfile 插件来设置需要被NetworkManager忽略管理的网卡,相关配置如下:
[main]
plugins=keyfile
[keyfile]
unmanaged-devices=interface-name:eth3
重启服务后,发现nmcli命令加载网卡配置文件报错:
# nmcli connection load "/etc/sysconfig/network-scripts/ifcfg-eth2"
Could not load file '/etc/sysconfig/network-scripts/ifcfg-eth2'
问题原因:
NetworkManager 在编译时默认启用的plugins插件中,‘ifcfg-rh’,此插件负责读写/etc/sysconfig/network-scripts/目录下的配置文件,用户设置plugins时覆盖了默认配置,造成ifcfg-rh插件不可用
解决方法:
修改NetworkManager.conf文件配置为正确格式,以下几种方式均可:
- 1 plugins追加使能keyfle插件
[main]
plugins+=keyfile
[keyfile]
unmanaged-devices=interface-name:eth3
- 2 plugins列举所有需要使能的插件
[main]
plugins=ifcfg-rh,keyfile
[keyfile]
unmanaged-devices=interface-name:eth3
- 3 由于NetworkManager默认加载了keyfile,也可以直接设置unmanaged-devices,不写
plugins+=keyfile
语句,如下:
[main]
[keyfile]
unmanaged-devices=interface-name:eth3
那么进一步了解一下
如何确定NetworkManager使能了哪些插件?
当无法确认源码中使能插件情况,可以通过日志内容确认NetworkManager实际生效了什么插件
使用journalctl -u NetworkManager
命令查看日志,查看Loaded settings plugin:
关键字,确认本次NetworkManager启动加载了ifcfg-rh和 keyfile插件
Mar 17 19:37:11 new_hostname NetworkManager[1563581]: [1647517031.1073] settings: Loaded settings plugin: ifcfg-rh (“/usr/lib64/NetworkManager/1.26.2-4/libnm-settings-plugin-ifcfg-rh.so”)
Mar 17 19:37:11 new_hostname NetworkManager[1563581]: [1647517031.1074] settings: Loaded settings plugin: keyfile (internal)