Comment puis-je réparer le service de noms pour le client Vagrant?

Je suis nouveau sur Ubuntu (je viens d’installer Ubuntu 12.10) et je veux commencer à développer avec. J’ai donc installé Vagrant, téléchargé lucid64.box , initialisé, lancé et accédé via ssh.

Pour tester la connexion Internet sur mon client, j’ai effectué une ping google.com et reçu unknown host: google.com . (L’hôte a un ping bien sûr.)

La recherche sur le Web m’a seulement conduit à cette solution qui suggérait de supprimer Vagrant et Virtual Box et de les réinstaller, assurez-vous simplement que Vagrant est installé en premier. J’ai essayé cette solution et j’obtiens toujours les mêmes résultats.

Que puis-je essayer de faire fonctionner?

J’ai eu le même problème avec Ubuntu 12.10 et j’ai trouvé une solution. Ajoutez simplement ces lignes à votre Vagrantfile:

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

Pour Vagrant 1.1+, vous aurez besoin (grâce à farooqsadiq)

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

Il semble que ce soit un bogue connu de VirtualBox sous Ubuntu 12.10:

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

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

Pour Vagrant 1.1+, vous aurez besoin

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

Testé sur Vagrant 1.2.2

Trouvé sur le blog de Lyte http://lyte.id.au/tag/vagrant/

Vous pouvez utiliser l’astuce modifyv sur toutes les machines virtuelles Vagrant en un seul coup en insérant un extrait de code dans ~ / .vagrant.d / Vagrantfile, par exemple:

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

Le (nouveau) fichier par défaut Vagrantfile * contient un ensemble d’exemples commentés, dont l’un est le suivant:

  # 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 

Assurez-vous de ne pas commenter cette ligne:

 conig.vm.network :bridged 

Cela donnera à votre machine virtuelle un access au réseau / Internet.

* À partir de la version 1.0.6. Au moment de cette réponse, la dernière version du référentiel est 1.0.3, il ne contient peut-être pas tous les exemples supplémentaires; dans ce cas, vous devrez append cette ligne de code.