Incompatibilidade do nome da interface de rede ao usar o vmbuilder

0

Eu criei uma VM usando vmbuilder e não consegui exibir a interface de rede. Consegui fazer login na VM usando o Virtual Machine Manager e vi que a interface em /etc/network/interfaces era eth0 , mas em networkctl era ens3 (um nome de interface de rede previsível). Eu olhei para /var/log/syslog e encontrei

Oct 17 19:26:43 servername kernel: [ 1.314794] virtio_net virtio0 ens3: renamed from eth0
Oct 17 19:26:43 servername ifup[394]: Cannot find device "eth0"
Oct 17 19:26:43 servername ifup[394]: Failed to bring up eth0.
Oct 17 19:26:43 servername systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Oct 17 19:26:43 servername systemd[1]: Failed to start Raise network interfaces.
Oct 17 19:26:43 servername systemd[1]: networking.service: Unit entered failed state.
Oct 17 19:26:43 servername systemd[1]: networking.service: Failed with result 'exit-code'.

entre as outras entradas de log.

As seguintes informações estão vazias ou não existem:

  • GRUB_CMDLINE_LINUX="" em /etc/default/grub (e GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" )
  • /etc/udev/rules.d/70-persistent-net.rules
  • /lib/udev/rules.d/75-persistent-net-generator.rules

Aqui estão as interfaces:

$ ls -l /sys/class/net
total 0
lrwxrwxrwx 1 root root 0 Oct 17 20:36 ens3 -> ../../devices/pci0000:00/0000:00:03.0/virtio0/net/ens3
lrwxrwxrwx 1 root root 0 Oct 17 20:36 lo -> ../../devices/virtual/net/lo

Aqui está a linha de comando vmbuilder que usei:

sudo vmbuilder kvm ubuntu --suite xenial --templates /homes/administrator/vmfiles \
    --hostname servername --dest ./servername --rootsize 200000 --mem 16384 \
    --ip 1.1.1.1 --dns 1.1.1.1 --gw 1.1.1.1 --bridge br0 \
    --network=bridge:br0 --timezone=America/Chicago --libvirt qemu:///system \
    --user USER --name USER --pass PASSWORD \
    --ssh-user-key /homes/USER/.ssh/authorized_keys \
    --addpkg linux-image-generic --addpkg openssh-server \
    --addpkg unattended-upgrades --addpkg python-apt --copy vmfiles/copyspecs

Como teste, alterei /etc/network/interfaces para me referir a ens3 e consegui abrir a interface.

Estou bem com o uso de nomes previsíveis, mas como resolvo essa incompatibilidade?

    
por Dennis Williamson 18.10.2016 / 00:07

1 resposta

0

Ao pesquisar no log que vmbuilder criou em /tmp , descobri que ele criou /etc/network/interfaces usando um modelo de /etc/vmbuilder/ubuntu/interfaces.tmpl , que usa cegamente eth0 (ou dhcp se isso foi selecionado em vez de um IP).

Isso parece ser um bug.

    
por Dennis Williamson 18.10.2016 / 00:11