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

18

Je suis nouveau sur Ubuntu (après avoir installé Ubuntu 12.10) et je veux commencer à développer avec. J'ai donc installé Vagrant, téléchargé lucid64.box, initialisé, démarré et accédé via ssh.

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

La recherche sur le Web ne m'a amené qu'à cette solution qui a suggéré 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 d'autre pour le faire fonctionner?

Shahar Galukman
la source
1
Il y a eu un problème avec mon client serveur obtenant un DNS. À l'aide de Google DNS, changé /etc/resolv.confet ajouté pour /etc/network/interfacesrésoudre le problème.
Shahar Galukman
Puis-je vous demander quel tutoriel vous utilisez? Juste une supposition: est-ce que ça commence avec Django? Si c'est le cas, je contacterai l'auteur pour faire référence au problème actuel. Sinon, je supprimerai ce commentaire.
don.joey
Je n'utilise pas le tutoriel que vous avez mentionné. J'ai trouvé la solution en utilisant le bon sens, mais la solution bayoffire est bien meilleure, c'est aussi un bug connu comme il l'a mentionné, donc je pense que ce sera corrigé dans la prochaine version.
Shahar Galukman

Réponses:

30

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 bug connu dans VirtualBox sur Ubuntu 12.10:

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

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

lukassteiner
la source
Bon à savoir que c'est un bug connu, même si je n'ai pas réussi à en trouver moi-même quelque chose. La solution de contournement que j'ai mentionnée dans mon commentaire ci-dessus l'a cependant résolu pour moi. Au moins d'autres peuples avec la même erreur auront deux façons différentes de résoudre ce problème. Je vous remercie.
Shahar Galukman
Encore plus sur cette question. Votre solution sera plus appropriée car la configuration DNS effectuée manuellement (comme suggéré par moi ci-dessus) sera supprimée à chaque démarrage de la machine virtuelle
Shahar Galukman
1
Voir cette réponse pour une solution sur les nouvelles versions de Vagrant: askubuntu.com/a/296796/122097
Brad
6

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/

farooqsadiq
la source
cela corrige l'erreur suivante: Impossible d'ajouter PPA: 'ppa: brightbox / ruby-ng'. Veuillez vérifier que le nom ou le format PPA est correct. sur Ubuntu 14 avec vagrant 1.7.2 et virtualbox sur macos.
nruth
5

Vous pouvez faire fonctionner l'astuce modifyvm sur toutes les machines virtuelles Vagrant en une seule fois en mettant un extrait dans ~ / .vagrant.d / Vagrantfile, par exemple:

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

Le (nouveau) fichier Vagrant par défaut * contient un tas 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 accès au réseau / Internet.

* À partir de la version 1.0.6. Au moment de cette réponse, la dernière version dans le référentiel est 1.0.3, elle peut ne pas avoir tous les exemples supplémentaires; dans ce cas, vous devrez ajouter cette ligne de code.

Jonas
la source
Je n'utiliserais cela que si NAT ne fonctionne pas. Les réseaux pontés ne fonctionnent que si vous obtenez une IP du HDCP vers la machine virtuelle. Voir ceci: docs.vagrantup.com/v1/docs/bridged_networking.html (tous les réseaux ne fonctionnent pas!)
lukassteiner