As configurações de rede falham na caixa Vagrant do Ubuntu / xenial64

As configurações de rede falham na caixa Vagrant do Ubuntu / xenial64

Com oUbuntu oficial 16.04 LTS (Xenial Xerus)Imagem da caixa Vagrant (no VirtualBox) Tenho problemas com configurações básicas de rede:

Meu 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

Deixar a configuração para DHCP também não funciona:

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

Ao mesmo tempo, as configurações acima funcionam para ubuntu/trusty64e ubuntu/wily64não oficiaisgbarbieru/xenial.

Tentar o comando /sbin/ifdown eth1 2> /dev/nullnão dá resultados, pois a interface possui um esquema de nomenclatura diferente (o principal é enp0s3).

Estou faltando alguma coisa óbvia aqui ou a caixa está quebrada?

Responder1

O problema parece estar resolvido na próxima versão do vagrant:https://github.com/mitchellh/vagrant/issues/7155

Eu tentei outra caixa de Jeff Geerlinghttps://twitter.com/geerlingguy/status/723571293174427648?lang=fre funcionou perfeitamente para mim. Jeff fez um ótimo trabalho no Vagrant/Ansible, então acho que é a melhor solução antes do lançamento da próxima versão do Vagrant

Responder2

Apesar de ubuntu/xenial64ser a caixa oficial do Ubuntu, elatem alguns problemasem relação à configuração da rede e não é um problema do Vagrant, conforme explicado na resposta do @Maxime.
Assim, como no assunto é mencionado, é preferível usar umbentôbox (mantido pela comunidade e com o Opscode Chef como líder do projeto), que neste caso seria bento/ubuntu-16.04.

Responder3

O problema se deve à convenção de nomenclatura da interface de rede nas novas versões do Ubuntu. Sua VM Vagrant não foi provisionada, mas você ainda pode fazer ssh para ela ( vagrant ssh). Lá você verá que não há interface nomeada eth1(você pode usar ifconfig -aou ip link). No meu caso, vejo as interfaces enp0s3e enp0s8.

Como mencionado emedição 6871

... precisamos de uma maneira de detectar as interfaces em vez de ter uma atribuição estática...

... ou convencer o Ubuntu a mudar sua imagem na nuvem.

No momento, não existe uma solução limpa.

Responder4

Eu enfrentei um problema semelhante ao discutido na pergunta original.

Estou usando o Vagrant 1.8.1. e usar a caixa ubuntu/trusty64 funcionou muito bem, no entanto, quando tentei usar a caixa ubuntu/xenial64, enfrentei o mesmo problema. Um comentárioneste tópico de ediçãome trouxe a uma solução, que parece funcionar.

Eu mudei a linha

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

no Vagrantfile para

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

informação relacionada