La configuración de red falla para ubuntu/xenial64 Vagrant box

La configuración de red falla para ubuntu/xenial64 Vagrant box

Con elUbuntu 16.04 LTS oficial (Xenial Xerus)Imagen de Vagrant Box (en VirtualBox) Tengo problemas con la configuración básica de red:

Mi Vagrantfile:

Vagrant.configure(2) do |config|

  config.vm.box = 'ubuntu/xenial64'

  config.vm.define "xenial" do |server|
    server.vm.network "private_network", ip: "192.168.10.10"
  end
end

vagrant upresultado:

==> xenial: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifdown eth1 2> /dev/null

Stdout from the command:



Stderr from the command:

sudo: unable to resolve host ubuntu-xenial
mesg: ttyname failed: Inappropriate ioctl for device

Dejar la configuración en DHCP tampoco funciona:

server.vm.network "private_network", type: "dhcp"

Al mismo tiempo, las configuraciones anteriores funcionan para ubuntu/trusty64y ubuntu/wily64no oficiales.gbarbieru/xenial.

Probar el comando /sbin/ifdown eth1 2> /dev/nullno da resultados ya que la interfaz tiene un esquema de nombres diferente (el principal es enp0s3).

¿Me estoy perdiendo algo obvio aquí o simplemente la caja está rota?

Respuesta1

El problema parece resolverse en la próxima versión de vagrant:https://github.com/mitchellh/vagrant/issues/7155

Probé otra caja de Jeff Geerling.https://twitter.com/geerlingguy/status/723571293174427648?lang=fry me funcionó perfectamente. Jeff ha hecho un gran trabajo en Vagrant/Ansible, así que supongo que es la mejor solución antes del lanzamiento de la próxima versión de Vagrant.

Respuesta2

A pesar de ubuntu/xenial64ser la caja oficial de Ubuntu,tiene algunos problemascon respecto a la configuración de la red y no es un problema de Vagrant como se explica en la respuesta de @Maxime.
Entonces, como se menciona en el tema, se prefiere usar unbentobox (mantenido por la comunidad y con Opscode Chef como líder del proyecto), que para este caso sería bento/ubuntu-16.04.

Respuesta3

El problema se debe a la convención de nomenclatura de la interfaz de red en las nuevas versiones de Ubuntu. Su máquina virtual Vagrant no pudo ser aprovisionada, pero aún puede acceder a ella mediante ssh ( vagrant ssh). Allí verás que no hay ninguna interfaz nombrada eth1(puedes usar ifconfig -ao ip link). En mi caso, veo las interfaces enp0s3y enp0s8.

Como se menciona ennúmero 6871

... necesitamos una forma de detectar las interfaces en lugar de tener una asignación estática...

... o convencer a ubuntu para que cambie su imagen de nube.

Por el momento no existe una solución limpia.

Respuesta4

Me enfrenté a un problema similar al comentado en la pregunta original.

Estoy usando Vagrant 1.8.1. y usar el cuadro ubuntu/trusty64 funcionó bien, sin embargo, cuando intenté usar el cuadro ubuntu/xenial64, me enfrenté al mismo problema. Un comentarioen este hilo de problemasme llevó a una solución, que parece funcionar.

cambié la línea

config.vm.network "private_network", ip: "192.168.33.10"

en el Vagrantfile para

config.vm.network "private_network", ip: "192.168.33.10", auto_config: false

información relacionada