Pergunta:
Eu gostaria de encontrar uma maneira de fazer com que a linha HWADDR no script ifcfg-eth0 verifique/atualize-se na inicialização, caso ela mude quando ocorrer um clone ou cópia da VM. Tem algum jeito de fazer isso? No CentOS 6, remover a linha HWADDR do script ifcfg-eth0 tornou-o muito mais dinâmico, mas ainda não encontrei uma maneira de evitar que ifcfg-eth0 volte para ifcfg-eno1677776 sem a linha HWADDR no CentOS 7. Obrigado em adianta pela ajuda!
Fundo:
Estou executando uma máquina virtual CentOS 7.2.1511 via VMware Workstation. Por padrão, o CentOS 7 se livrou doeth0convenção de nomenclatura de seus scripts de rede e agora está configurado para usar scripts de rede nomeadosifcfg-eno1677776ou algo semelhante. Eu tenho um software quefortementedepende doeth0esquema de nomenclatura. Então eu reconfigurei meuifcfg-eno1677776roteiro de:
- Renomeando
/etc/sysconfig/network-scripts/ifcfg-eno1677776
para/etc/sysconfig/network-scripts/ifcfg-eth0
Modificandoifcfg-eth0ser (obteve HWADDR de
/sys/class/net/eno1677776/address
):BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no HWADDR=00:0c:29:d6:d2:65
Adicionadonet.ifnames=0até o final doGRUB_CMDLINE_LINUXlinha no
/etc/sysconfig/grub
arquivo.Reinicie e execute ifconfig (e comemore!):
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.176.15.148 netmask 255.255.252.0 broadcast 10.176.15.255 inet6 fe80::20c:29ff:fed6:d265 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d6:d2:65 txqueuelen 1000 (Ethernet) RX packets 2141073 bytes 749959853 (715.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 65237 bytes 35352127 (33.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Cada vez que inicializo, essa interface eth0 permanece. No entanto, esta VM será distribuída entre os membros da equipe e eventualmente entregue aos clientes. É aqui que surge o problema. O VMware é ótimo porque você pode clonar um instantâneo de uma VM para distribuição, mas isso altera o endereço MAC da VM.
EDITAR:
Você deve executar grub2-mkconfig -o /boot/grub2/grub.cfg
após fazer a alteração @larsks recomendada abaixo para que funcione. Funcionou para mim!
Responder1
A solução mais fácil é provavelmente desabilitar o comportamento de "nomeação previsível de dispositivos" definindo as seguintes opções na linha de comando do kernel:
biosdevname=0 net.ifnames=0
Com isso instalado, a primeira interface Ethernet em seu sistema será nomeada eth0
, a segunda será eth1
, etc.aqui.
Com isso instalado, basta remover a HWADDR
linha do seu arquivo de configuração e tudo deverá funcionar conforme o esperado.