
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 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 en DHCP tampoco funciona:
server.vm.network "private_network", type: "dhcp"
Al mismo tiempo, las configuraciones anteriores funcionan para ubuntu/trusty64
y ubuntu/wily64
no oficiales.gbarbieru/xenial
.
Probar el comando /sbin/ifdown eth1 2> /dev/null
no 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/xenial64
ser 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 -a
o ip link
). En mi caso, veo las interfaces enp0s3
y 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