Como faço para corrigir o serviço de nomes para o cliente Vagrant?

18

Eu sou novo no Ubuntu (após ter instalado o Ubuntu 12.10) e quero começar a desenvolver com ele. Então eu instalei o Vagrant, baixei lucid64.box, inicializei, iniciei e acessei via ssh.

Para testar a conexão com a Internet no meu cliente, fiz ping google.com e recebi unknown host: google.com. (O host recebeu ping, é claro.)

Pesquisando na Web, só me trouxe a solução que sugeria remover o Vagrant e a caixa Virtual e reinstalá-los, apenas certifique-se de que o Vagrant foi instalado primeiro. Eu tentei esta solução e ainda estou obtendo os mesmos resultados.

O que mais eu posso tentar fazer funcionar?

Shahar Galukman
fonte
11
Ocorreu um problema com o meu cliente servidor recebendo um DNS. Usando o DNS do Google, alterado /etc/resolv.confe adicionado para /etc/network/interfacesresolver o problema.
Shahar Galukman
Posso perguntar qual tutorial você está usando? Apenas um palpite: está começando com o django? Nesse caso, entrarei em contato com o autor para me referir ao presente problema. Caso contrário, vou excluir este comentário.
don.joey
Não estou usando o tutorial que você mencionou. Encontrei a solução usando o bom senso, mas a solução bayoffire é muito melhor, também é conhecido como bug, como ele mencionou, então acredito que será corrigido em versões futuras.
Shahar Galukman 19/03/2013

Respostas:

30

Eu tive o mesmo problema com o Ubuntu 12.10 e encontrei uma solução. Basta adicionar essas linhas ao seu arquivo Vagrant:

config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "on"]

Para o Vagrant 1.1+, você precisará (graças a farooqsadiq)

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

Parece ser um bug conhecido no VirtualBox no Ubuntu 12.10:

https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1048783

https://www.virtualbox.org/ticket/10864

lukassteiner
fonte
É bom saber que é um bug conhecido, mesmo que eu não tenha conseguido encontrar algo sobre isso sozinho. A solução que eu mencionei no meu comentário acima resolveu isso para mim. Pelo menos outros povos com o mesmo erro terão duas maneiras diferentes de resolver esse problema. Obrigado.
Shahar Galukman
Ainda mais sobre esse problema. Sua solução será mais adequada uma vez que a configuração DNS feita manualmente (como sugerido por mim acima) serão apagados toda vez que eu iniciar o VM
Shahar Galukman
11
Veja esta resposta para obter uma solução nas versões mais recentes do Vagrant: askubuntu.com/a/296796/122097
Brad
6

Para o Vagrant 1.1+, você precisará

config.vm.provider "virtualbox" do |v| 
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end

Testado no Vagrant 1.2.2

Encontrado no Blog da Lyte http://lyte.id.au/tag/vagrant/

farooqsadiq
fonte
isso corrige o seguinte erro: Não é possível adicionar o PPA: 'ppa: brightbox / ruby-ng'. Verifique se o nome ou formato do PPA está correto. no Ubuntu 14 com vagrant 1.7.2 e virtualbox no macos.
Nruth
5

Você pode fazer o truque modifyvm funcionar em todas as VMs do Vagrant em uma ocorrência, colocando um trecho em ~ / .vagrant.d / Vagrantfile, por exemplo:

Vagrant::Config.run do |config|
    config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
David Schoen
fonte
2

O (novo) padrão Vagrantfile * contém vários exemplos comentados, um dos quais é o seguinte:

  # Assign this VM to a bridged network, allowing you to connect directly to a
  # network using the host's network device. This makes the VM appear as another
  # physical device on your network.
  # config.vm.network :bridged

Certifique-se de não comentar esta linha:

conig.vm.network :bridged

Isso dará à sua máquina virtual acesso à rede / Internet.

* A partir da versão 1.0.6. No momento desta resposta, a versão mais recente no repositório é 1.0.3, talvez não tenha todos os exemplos extras; nesse caso, você precisará adicionar essa linha de código.

Jonah
fonte
Eu usaria isso apenas se o NAT não funcionar. As redes com ponte funcionam apenas se você obtiver um IP do HDCP para a máquina virtual. Veja esta: docs.vagrantup.com/v1/docs/bridged_networking.html (não todas as redes de trabalho!)
lukassteiner