Jak zresetować /etc/networking/interfaces
przy użyciu „przewidywalnych nazw interfejsów sieciowych”?
Wersje Ubuntu starsze niż 15.10 używają nazw kart sieciowych, takich jak:
eth0
eth1
eth2
Zastąpienie karty sieciowej lub przeniesienie maszyny wirtualnej do nowego hiperwizora spowodowałoby, że Linux zwiększyłby numer interfejsu. Usunięcie /etc/udev/rules.d/70-peristent-net.rules
spowoduje ponowne użycie Linuksa eth0
.
Ubuntu 15.10 i nowsze używają „ przewidywalnych nazw interfejsów sieciowych ”. Nazwa karty sieciowej pochodzi od adresu mac.
ens3
ens32
ens192
Podczas migracji maszyny wirtualnej sieć nie rozpocznie się, ponieważ /etc/network/interfaces
nadal odwołuje się do starej nieistniejącej karty sieciowej.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens32
iface ens32 inet dhcp
pre-up sleep 2
Jaki jest najlepszy sposób na zresetowanie pliku / etc / network / interfaces?
Muszę wykonać tę czynność przed wyłączeniem vm i migracją do nowego hiperwizora, ponieważ używam programu pakującego do tworzenia automatycznych złotych obrazów na podstawie złotych obrazów szefa kuchni / bento .
Odkryłem, że usunięcie / etc / network / interfaces nie działa, ponieważ plik nie jest automatycznie regenerowany przy następnym uruchomieniu po migracji.
Próbowałem edytować mój plik grub, aby powrócić do konwencji nazewnictwa „eth0”. Podczas gdy / etc / network / interfaces odnosi się do starej nazwy (eth0), vm nie otrzyma adresu IP, a jakiekolwiek ponowne uruchomienie spowoduje, że vm użyje nowej konwencji nazewnictwa. Przekonałem się również, że systemd zawsze będzie miał pierwszeństwo, chyba że mogę zagwarantować, że na biosdevname=0
stałe pozostanie w konfiguracji grub . Nie wiesz, jak zastosować to na stałe
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
Jeśli to możliwe, wolałbym nie używać inicjowania w chmurze ani żadnych skryptów po uruchomieniu, ponieważ wolę, aby złote obrazy były tak czyste, jak to możliwe.
Z pewnością jest to problem, który dostawcy chmury (Azure, AWS, RackSpace, Openstack) już rozwiązali podczas importowania vms. Nie mogę być pierwszą osobą, która próbuje migrować maszynę wirtualną przy użyciu przewidywalnych nazw interfejsów sieciowych.
Próbowałem uruchomić te polecenia przed zamknięciem i migracją VM
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
Znajduję, kiedy migruję vm, /etc/network/interfaces
i ip address
nadal się odwołujęens32