2015-02-09 4 views
8

Das Szenario ist, dass meine Entwicklungsumgebung auf einer Vagrant-Box auf meinem Laptop (Host) ist und ich möchte Browser-Tests in einer vitualbox vm machen, also muss ich eine VM von einer anderen sehen.Wie kann ich auf einen vagabundierenden Gast von einem anderen virtualbox-Gast zugreifen?

Der Port der Landstreicher-Box ist: 8080, der an den Host am selben Port weitergeleitet wird: 8080. So kann ich den Server vom Host bei localhost sehen: 8080

Welche Adresse sollte ich für den Browser-Test-VM verwenden?

Das Test-VM-Standardgateway? Die vagrant vm ip? Die virtuelle Netzwerk-IP des Hosts?

Und sollte ich einen NAT oder Host-Only-Adapter auf den Browser testen vm verwenden?

Das macht für viele Kombinationen, von denen ich glaube, dass ich es versucht habe. Was muss ich hier noch verstehen?

Antwort

11

In Ihrem Anwendungsfall sollten Sie Bridged-Netzwerk (Öffentliches Netzwerk in Vagrant) verwenden. Wenn sich die VMs auf demselben Host befinden, können Sie sogar intern (Privates Netzwerk in Vagrant) verwenden.

Bei Verwendung von Öffentliches Netzwerk kann die 2. Netzwerkkarte der VM eine IP-Adresse vom DHCP-Server in Ihrem Netzwerk (z. B. Ihrem Heimrouter) beziehen.

einfach den folgenden Code-Block in Ihrem Vagrantfile hinzufügen und tun sollte ein vagrant reload

Vagrant.configure("2") do |config| 
    config.vm.network "public_network" 
end 

Sie können die IP-Adresse erhalten, indem vagrant ssh und ifconfig/ip addr show verwenden.

0

Hinzufügen zu akzeptierten Antwort, können Sie tatsächlich IP festlegen und angeben, welche Netzwerkschnittstelle zu verwenden.

Mein Setup auf Linux-Box über WLAN und statische IP: Sie können Ihre Wi-Fi-Schnittstelle Name durch Ausführen ifconfig Befehl finden.

Vagrant.configure("2") do |config| 
    config.vm.network "public_network", :bridge => 'wlp8s0', ip: "192.168.1.199" 
end 
1

Falls Sie wollen nicht mit public_network gerade gehen wie ich, dann sollten Sie das tun private_network unter Verwendung von:

  1. öffnen Vagrantfile aus dem Projekt Wurzel
  2. Suche nach config.vm.network
  3. Fügen Sie diese Zeile config.vm.network "private_network", ip: "192.168.33.10" hinzu. Denken Sie daran, dass dies nicht die IP-Adresse Ihrer Basismaschine ist, sondern eine IP-Adresse einer virtuellen Box, und Ihre IP-Adresse der Maschine sollte unterschiedlich sein. Sie können sagen, dass es sich um eine gefälschte IP-Adresse handelt, ändern Sie sie in etwas anderes wie 192.168.30.20.
  4. Laden Sie Ihren Vagrant mit vagrant reload.
  5. Jetzt gehen Sie zu Ihrem anderen virtuellen Gast in meinem Fall ist es die Windows Guest 2. Meine Basis ist Linux Mint Vagrant Box ist auf Ubuntu Guest 1. Öffnen Sie die Datei C:\Windows\System32\drivers\etc\hosts als Admin und führen Sie den obigen IP-Eintrag dort wie 192.168.33.10 local.youralias.com aus. Und speichern Sie die Datei, danach können Sie jetzt die Website unter http://local.youralias.com/ durchsuchen.
  6. Wenn Ihr Gast 2 auch Linux ist, bearbeiten Sie einfach diese Datei sudo vi /etc/hosts, und fügen Sie diese Zeile oben 192.168.33.10 local.youralias.com. Jetzt speichern und beenden und durchsuchen Sie die URL :)

Genießen Sie! Glückliche Kodierung.