Wie behebe ich den Namensservice für den Vagrant-Client?

18

Ich bin neu in Ubuntu (nachdem ich gerade Ubuntu 12.10 installiert habe) und möchte mit der Entwicklung beginnen. Also habe ich Vagrant installiert, heruntergeladen lucid64.box, initialisiert, gestartet und über ssh darauf zugegriffen.

Zum Test habe ich die Internetverbindung auf meinem Client gemacht ping google.com und erhalten unknown host: google.com. (Der Gastgeber hat natürlich Ping bekommen.)

Das Durchsuchen des Webs brachte mich nur zu dieser Lösung, die vorschlug, Vagrant und Virtual Box zu entfernen und neu zu installieren. Stellen Sie einfach sicher, dass Vagrant zuerst installiert wurde. Ich habe diese Lösung ausprobiert und erhalte immer noch die gleichen Ergebnisse.

Was kann ich noch versuchen, um es zum Laufen zu bringen?

Shahar Galukman
quelle
1
Es gab ein Problem mit meinem Serverclient, der ein DNS erhielt. Mit Google DNS, geändert in /etc/resolv.confund hinzugefügt, um /etc/network/interfacesdas Problem zu lösen.
Shahar Galukman
Kann ich Sie fragen, welches Tutorial Sie verwenden? Nur eine Vermutung: Beginnt es mit Django? In diesem Fall werde ich mich an den Autor wenden, um auf das vorliegende Problem hinzuweisen. Wenn nicht, werde ich diesen Kommentar löschen.
don.joey
Ich verwende das von Ihnen erwähnte Tutorial nicht. Ich fand die Lösung mit gesundem Menschenverstand, aber Bayoffire-Lösung ist viel besser. Es ist auch ein bekannter Fehler, den er erwähnt hat, also glaube ich, dass er in zukünftigen Versionen behoben wird.
Shahar Galukman

Antworten:

30

Ich hatte das gleiche Problem mit Ubuntu 12.10 und fand eine Lösung. Füge einfach diese Zeilen zu deiner Vagrantdatei hinzu:

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

Für Vagrant 1.1+ benötigen Sie (dank farooqsadiq)

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

Es scheint ein bekannter Fehler in VirtualBox unter Ubuntu 12.10 zu sein:

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

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

lukassteiner
quelle
Gut zu wissen, dass es sich um einen bekannten Fehler handelt, obwohl ich selbst nichts gefunden habe. Die Problemumgehung, die ich oben in meinem Kommentar erwähnt habe, hat sie jedoch für mich gelöst. Zumindest andere Leute mit demselben Fehler haben zwei verschiedene Möglichkeiten, um dieses Problem zu lösen. Vielen Dank.
Shahar Galukman
Noch mehr zu diesem Thema. Ihre Lösung wird mehr geeignet , da die DNS - Konfiguration manuell vornehmen (wie von mir oben angedeutet) wird jedes Mal , wenn ich die VM starten gelöscht werden
Shahar Galukman,
1
In dieser Antwort finden Sie eine Lösung für neuere Versionen von Vagrant: askubuntu.com/a/296796/122097
Brad
6

Für Vagrant 1.1+ benötigen Sie

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

Getestet auf Vagrant 1.2.2

Gefunden auf Lytes Blog http://lyte.id.au/tag/vagrant/

farooqsadiq
quelle
Dies behebt den folgenden Fehler: PPA kann nicht hinzugefügt werden: 'ppa: brightbox / ruby-ng'. Bitte überprüfen Sie, ob der PPA-Name oder das PPA-Format korrekt ist. auf Ubuntu 14 mit vagrant 1.7.2 und virtualbox auf macos.
Nruth
5

Sie können den modifyvm-Trick auf alle Vagrant-VMs anwenden, indem Sie ein Snippet in ~ / .vagrant.d / Vagrantfile einfügen, z.

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

Das (neue) Standard-Vagrantfile * enthält eine Reihe auskommentierter Beispiele, von denen eines wie folgt lautet:

  # 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

Stellen Sie sicher, dass Sie diese Zeile nicht kommentieren:

conig.vm.network :bridged

Dadurch erhält Ihre virtuelle Maschine Zugriff auf das Netzwerk / Internet.

* Ab Version 1.0.6. Zum Zeitpunkt der Beantwortung dieser Frage ist die neueste Version im Repository 1.0.3. Möglicherweise enthält sie nicht alle zusätzlichen Beispiele. In diesem Fall müssen Sie diese Codezeile hinzufügen.

Jona
quelle
Ich würde dies nur verwenden, wenn NAT nicht funktioniert. Überbrückte Netzwerke funktionieren nur, wenn Sie eine IP vom HDCP zur virtuellen Maschine erhalten. Siehe dies: docs.vagrantup.com/v1/docs/bridged_networking.html (nicht alle Netzwerke funktionieren!)
Lukassteiner