Jak naprawić usługę nazw dla klienta Vagrant?

18

Jestem nowy w Ubuntu (właśnie zainstalowałem Ubuntu 12.10) i chcę zacząć się z nim rozwijać. Więc zainstalowałem Vagrant, pobrałem, lucid64.boxzainicjowałem, uruchomiłem i uzyskałem dostęp przez ssh.

Aby przetestować połączenie internetowe na moim kliencie, zrobiłem ping google.com i otrzymałem unknown host: google.com. (Host otrzymał oczywiście ping.)

Przeszukanie Internetu doprowadziło mnie tylko do tego rozwiązania, które sugerowało usunięcie Vagrant i Virtual boxa i ponowną instalację, po prostu upewnij się, że Vagrant został zainstalowany jako pierwszy. Wypróbowałem to rozwiązanie i nadal otrzymuję te same wyniki.

Co jeszcze mogę spróbować, aby działało?

Shahar Galukman
źródło
1
Wystąpił problem z moim klientem serwera uzyskującym DNS. Za pomocą Google DNS zmieniono /etc/resolv.confi dodano, aby /etc/network/interfacesrozwiązać problem.
Shahar Galukman
Czy mogę zapytać, którego samouczka używasz? Tylko zgadnij: czy zaczyna się od Django? Jeśli tak, skontaktuję się z autorem, aby odnieść się do obecnego problemu. Jeśli nie, usunę ten komentarz.
don.joey
Nie korzystam z samouczka, o którym wspominałeś. Znalazłem rozwiązanie przy użyciu zdrowego rozsądku, ale rozwiązanie bayoffire jest znacznie lepsze, jest to również znany błąd, jak wspomniał, więc wierzę, że zostanie naprawiony w przyszłej wersji.
Shahar Galukman

Odpowiedzi:

30

Miałem ten sam problem z Ubuntu 12.10 i znalazłem rozwiązanie. Po prostu dodaj te linie do swojego pliku Vagrantfile:

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

Do Vagrant 1.1+ będziesz potrzebować (dzięki farooqsadiq)

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

Wygląda na to, że jest znanym błędem w VirtualBox na Ubuntu 12.10:

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

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

lukassteiner
źródło
Dobrze wiedzieć, że jest to znany błąd, chociaż sam nie udało mi się go znaleźć. Obejście, o którym wspomniałem w powyższym komentarzu, rozwiązało jednak dla mnie. Przynajmniej inne narody z tym samym błędem będą miały dwa różne sposoby rozwiązania tego problemu. Dziękuję Ci.
Shahar Galukman
Jeszcze więcej na ten temat. Twoje rozwiązanie będzie bardziej odpowiednie, ponieważ konfiguracja DNS wykonana ręcznie (jak zasugerowałem powyżej) zostanie usunięta za każdym razem, gdy uruchomię
maszynę
1
Zobacz odpowiedź na rozwiązanie dla nowszych wersji Vagrant: askubuntu.com/a/296796/122097
Brad
6

Do Vagrant 1.1+ będziesz potrzebować

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

Testowany na Vagrant 1.2.2

Znalezione na blogu Lyte http://lyte.id.au/tag/vagrant/

farooqsadiq
źródło
naprawia to następujący błąd: Nie można dodać PPA: „ppa: brightbox / ruby-ng”. Sprawdź, czy nazwa lub format PPA jest poprawny. na Ubuntu 14 z włóczęgą 1.7.2 i virtualbox na macos.
nruth
5

Możesz sprawić, by sztuczka modyfikująca działała na wszystkich wirtualnych maszynach wirtualnych za jednym razem, umieszczając fragment kodu w ~ / .vagrant.d / Vagrantfile, np .:

Vagrant::Config.run do |config|
    config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
David Schoen
źródło
2

(Nowy) domyślny plik Vagrantfile * zawiera kilka skomentowanych przykładów, z których jeden jest następujący:

  # 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

Usuń komentarz z tej linii:

conig.vm.network :bridged

Dzięki temu Twoja maszyna wirtualna uzyska dostęp do sieci / Internetu.

* Od wersji 1.0.6. W chwili udzielenia odpowiedzi najnowsza wersja w repozytorium to 1.0.3, może nie zawierać wszystkich dodatkowych przykładów; w takim przypadku musisz dodać ten wiersz kodu.

Jonasz
źródło
Użyłbym tego tylko, jeśli NAT nie działa. Mostkowane sieci działają tylko wtedy, gdy uzyskasz adres IP z HDCP na maszynę wirtualną. Zobacz: docs.vagrantup.com/v1/docs/bridged_networking.html (nie wszystkie sieci działają!)
lukassteiner