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

15

Com a imagem oficial da caixa Ubuntu 16.04 LTS (Xenial Xerus) Vagrant (no VirtualBox), tenho problemas com as 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 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

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

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

Ao mesmo tempo, as configurações acima trabalhar para ubuntu/trusty64e ubuntu/wily64como não oficiais gbarbieru/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 perdendo algo óbvio aqui ou a caixa está quebrada?

techraf
fonte

Respostas:

15

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

Tentei outra caixa de Jeff Geerling https://twitter.com/geerlingguy/status/723571293174427648?lang=fr e 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

Maxime Thoonsen
fonte
Eu tive o mesmo problema com a caixa oficial do Ubuntu 16.04. Após algumas horas de tentativa e erro, tentei a caixa de geerlingguy e funcionou como um encanto. A caixa oficial do Ubuntu 14.04 LTS também foi boa.
Jabba
2

Apesar de ubuntu/xenial64ser a caixa oficial do Ubuntu, há alguns problemas relacionados à configuração da rede e não é um problema do Vagrant, como é explicado na resposta do @Maxime.
Portanto, como mencionado na edição, é preferível usar uma caixa bento (mantida pela comunidade e com o Opscode Chef como líder do projeto), o que, para este caso, seria bento/ubuntu-16.04.

Alter Lagos
fonte
"bento" caixas também foram recomendadas pelo mantenedor do Vagrant: github.com/mitchellh/vagrant/issues/7155#issuecomment-228568200
joonas.fi
1

O problema é devido à convenção de nomenclatura da interface de rede nas novas versões do Ubuntu. Não foi possível provisionar sua VM do Vagrant, mas você ainda pode fazer o ssh ( vagrant ssh). Lá você verá que não há uma interface nomeada eth1(você pode usar ifconfig -aou ip link). No meu caso, eu vejo as interfaces enp0s3e enp0s8.

Conforme mencionado na ediçã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 há solução limpa.

jzer7
fonte
1

Na verdade, além da resposta do Maximes, você pode alterar a linha de comando do GRUB na sua caixa até que a nova versão seja propagada.

Basta ir /etc/default/grube definir a linha apropriada como GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0" Você precisa alterar o /etc/network/interfacespara refletir os nomes corretos (eth0 ...).

Veja a documentação do certdepot para mais informações .

Snafu
fonte
1

Eu enfrentei um problema semelhante ao discutido na pergunta original.

Estou usando o Vagrant 1.8.1. e o uso da caixa ubuntu / trusty64 funcionou bem, no entanto, quando tentei usar a caixa ubuntu / xenial64, enfrentei o mesmo problema. Um comentário neste tópico trouxe-me a uma solução, que parece dar certo.

Eu mudei a linha

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

no arquivo Vagrant para

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