Como você redefine /etc/networking/interfaces
ao usar "nomes previsíveis da interface de rede"?
Versões do Ubuntu anteriores à 15.10 usam nomes de adaptadores de rede como:
eth0
eth1
eth2
Substituir uma placa de rede ou mover uma vm para um novo hypervisor faria com que o Linux aumentasse o número da interface. A exclusão /etc/udev/rules.d/70-peristent-net.rules
tornaria a reutilização do Linux eth0
.
O Ubuntu 15.10 e versões mais recentes usam ' Nomes de interface de rede previsíveis '. O nome do adaptador de rede é derivado do endereço mac.
ens3
ens32
ens192
Ao migrar uma vm, a rede não será iniciada, pois /etc/network/interfaces
ainda faz referência ao antigo adaptador de rede inexistente.
# 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
Qual é a melhor maneira de redefinir o arquivo / etc / network / interfaces?
Preciso executar esta ação antes de desligar a VM e migrar para um novo hypervisor, pois estou usando o empacotador para criar imagens douradas automatizadas, com base nas imagens douradas do chef / bento .
Descobri que excluir / etc / network / interfaces não funciona, pois o arquivo não é regenerado automaticamente na próxima inicialização após a migração.
Eu tentei editar meu arquivo grub para voltar à convenção de nomenclatura 'eth0'. Enquanto / etc / network / interfaces se refere ao nome antigo (eth0), o vm não recebe um ip e qualquer reinicialização fará com que o vm use a nova convenção de nomenclatura. Também descobri que o systemd sempre terá precedência, a menos que eu possa garantir biosdevname=0
permanentemente a permanência na configuração do grub . Não sabe como aplicar permanentemente este
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
Se possível, prefiro não usar o init de nuvem ou usar scripts pós-inicialização, pois prefiro manter as imagens douradas o mais limpas possível.
Certamente, esse é um problema que os provedores de nuvem (Azure, AWS, RackSpace, Openstack) já resolveram quando importam vms. Não posso ser a primeira pessoa a tentar migrar uma VM usando nomes de interface de rede previsíveis.
Eu tentei executar esses comandos antes de desligar e migrar o vm
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
Acho que quando migro a vm, isso /etc/network/interfaces
e ip address
ainda me refiro aens32