Comment réinitialiser /etc/networking/interfaces
lors de l'utilisation de "noms d'interface réseau prévisibles"?
Les versions d'Ubuntu antérieures à 15.10 utilisent des noms de carte réseau comme:
eth0
eth1
eth2
Le remplacement d'une carte réseau ou le déplacement d'un VM vers un nouvel hyperviseur entraînerait l'incrémentation du numéro d'interface par Linux. La suppression /etc/udev/rules.d/70-peristent-net.rules
entraînerait la réutilisation de Linux eth0
.
Ubuntu 15.10 et les versions plus récentes utilisent des « noms d'interface réseau prévisibles ». Le nom de la carte réseau est dérivé de l'adresse mac.
ens3
ens32
ens192
Lors de la migration d'un VM, la mise en réseau ne démarre pas car fait /etc/network/interfaces
toujours référence à l'ancienne carte réseau inexistante.
# 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
Quelle est la meilleure façon de réinitialiser le fichier / etc / network / interfaces?
J'ai besoin de faire cette action avant d' arrêter le vm et de migrer vers un nouvel hyperviseur car j'utilise packer pour créer des images dorées automatisées, basées sur les images dorées chef / bento .
J'ai trouvé que la suppression de / etc / network / interfaces ne fonctionne pas car le fichier n'est pas automatiquement régénéré au prochain démarrage après la migration.
J'ai essayé de modifier mon fichier grub pour revenir à la convention de dénomination «eth0». Alors que / etc / network / interfaces fait référence à l'ancien nom (eth0), le vm n'obtiendra pas d'ip et tout redémarrage obligera le vm à utiliser la nouvelle convention de dénomination. De plus, j'ai trouvé que systemd aura toujours la priorité à moins que je ne puisse garantir de biosdevname=0
façon permanente les restes dans la configuration de grub . Je ne sais pas comment appliquer ceci de façon permanente
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
Si possible, je préfère ne pas utiliser cloud init ou utiliser des scripts de post-démarrage car je préfère garder les images dorées aussi propres que possible.
C'est sûrement un problème que les fournisseurs de cloud (Azure, AWS, RackSpace, Openstack) ont déjà résolu lorsqu'ils importent des vms. Je ne peux pas être la première personne à essayer de migrer un VM en utilisant des noms d'interface réseau prévisibles.
J'ai essayé d'exécuter ces commandes avant d'arrêter et de migrer le VM
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
Je trouve quand je migre le vm, /etc/network/interfaces
et je me ip address
réfère toujours àens32