
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 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 DHCP também não funciona:
server.vm.network "private_network", type: "dhcp"
Ao mesmo tempo, as configurações acima funcionam para ubuntu/trusty64
e ubuntu/wily64
não oficiaisgbarbieru/xenial
.
Tentar o comando /sbin/ifdown eth1 2> /dev/null
nã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/xenial64
ser 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 -a
ou ip link
). No meu caso, vejo as interfaces enp0s3
e 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