我使用Vagrant / VirtualBox和ansible尝试了上述方法,但是在我的开发环境中,这根本不起作用。
我所做的所有操作都会保留旧的接口名称,直到完全重新启动为止。
我在/etc/udev/rules.d/60-persistent-net.rules
(基于:https : //access.redhat.com/solutions/112643)中添加了以下规则
我的目标是根据PCI地址为接口指定名称。
例:
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:09.0", NAME:="int0"
ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:10.0", NAME:="ext0"
添加这些规则后,我执行了以下命令:
ip link set eth0 down
udevadm control --reload-rules
udevadm trigger
ip link set int0 up
错误消息Cannot find device "int0"
在ip link set * up
命令上。并且在/var/log/messages
我注意到以下消息
Aug 16 17:08:41 localhost ansible-command: Invoked with creates=None executable=None _uses_shell=True strip_empty_ends=True _raw_params=ip link set eth0 down && udevadm control --reload-rules && udevadm trigger && ip link set int0 up#012 removes=None argv=None warn=True chdir=None stdin_add_newline=True stdin=None
Aug 16 17:08:41 localhost NetworkManager[6989]: <info> [1565975321.5971] device (eth6): state change: disconnected -> unavailable (reason 'carrier-changed', sys-iface-state: 'managed')
Aug 16 17:08:41 localhost systemd-udevd: Network interface NamePolicy= disabled on kernel command line, ignoring.
但是以下操作确实可以通过VirtualBox访问VM并执行以下命令来删除并重新添加内核模块。
rmmod e1000
modprobe e1000
我在以下线程中发现了这一点:https : //www.centos.org/forums/viewtopic.php?t=54695
我注意到的一件奇怪的事是lsmod
给了我(请注意Used by
)
[vagrant@node-01 ~]$ lsmod
Module Size Used by
e1000 137586 0