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


15

Con la imagen oficial de Ubuntu 16.04 LTS (Xenial Xerus) 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 up resultado:

==> 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 a DHCP tampoco funciona:

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

Al mismo tiempo, las configuraciones anteriores trabajan para ubuntu/trusty64y ubuntu/wily64como no oficiales gbarbieru/xenial.

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

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

Respuestas:


15

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

Probé con otra caja de Jeff Geerling https://twitter.com/geerlingguy/status/723571293174427648?lang=fr y funcionó perfectamente para mí. 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


Tuve el mismo problema con el cuadro oficial de Ubuntu 16.04. Después de algunas horas de prueba y error, probé la caja de geerlingguy y funcionó de maravilla. El cuadro oficial Ubuntu 14.04 LTS también estaba bien.
Jabba

2

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



1

El problema se debe a la convención de nomenclatura de la interfaz de red en las nuevas versiones de Ubuntu. Su VM Vagrant no se pudo aprovisionar, pero aún puede usar ssh ( vagrant ssh). Allí verá que no hay una interfaz con nombre eth1(puede usar ifconfig -ao ip link). En mi caso, veo las interfaces enp0s3y enp0s8.

Como se menciona en el nú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 en la nube.

Por el momento, no hay una solución limpia.


1

En realidad, además de la respuesta de Maximes, puede cambiar la línea de comandos de GRUB en su casilla hasta que se propague la nueva versión.

Simplemente vaya /etc/default/gruby establezca la línea apropiada en GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" Debe cambiar /etc/network/interfacespara reflejar los nombres correctos (eth0 ...).

Vea la documentación de en certdepot para más información .


1

Me enfrenté a un problema similar como se discutió 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 comentario en este tema me trajo una solución, que parece funcionar.

Cambié la linea

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.