Ich habe einen Server (Debian Squeeze) mit 1 Ethernet-Karte und 2 öffentlichen statischen IP-Adressen (188.120.245.4 und 188.120.244.5).
Was ich will: Virtuelle Box einrichten (Ubuntu) mit Zugriff über statische IP (188.120.244.5).
Was ich versucht habe:
- config.vm.forward_port - gute Idee: Setup-Schnittstelle "eth1: 1" mit 188.120.244.5 auf dem Host-Computer und Hinzufügen zur Vagrant-Datei "config.vm.forward_port = hmm ..?"
- config.vm.network: hostonly, "188.120.244.5" - funktioniert nicht. Es wurde eine neue Schnittstelle auf dem Host-Rechner mit der IP-Adresse "188.120.244.1" erstellt. Natürlich gehört die 188.120.244.1 IP nicht mir und ich kann über diese IP nicht auf meinen Server zugreifen.
- config.vm.network: bridged - ich bin verwirrt wie das funktioniert :)
Was ich jetzt habe: Nicht funktionierende Konfiguration.
Debian-host-machine# cat Vagrantfile
Vagrant::Config.run do |config|
config.vm.define :gitlab do |box_config|
box_config.vm.box = "ubuntu"
box_config.vm.host_name = "ubuntu"
box_config.vm.network :bridged
box_config.vm.network :hostonly, "188.120.244.5", :auto_config => false
end
end
Debian-host-machine# ifconfig
eth1 Link encap:Ethernet HWaddr 00:15:17:69:71:bb
inet addr:188.120.245.4 Bcast:188.120.247.255 Mask:255.255.248.0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr:188.120.244.1 Bcast:188.120.246.255 Mask:255.255.255.0
Ubuntu-virtual-machine# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:ee:8d:0c
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
eth1 Link encap:Ethernet HWaddr 08:00:27:45:71:87
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
Wie kann ich über eine öffentliche statische IP-Adresse vom Netzwerk auf die virtuelle Box zugreifen?
Ich verwende Oracle VM VirtualBox Manager 4.1.18 und Vagrant Version 1.0.3.
Vielen Dank im Voraus für Ihr Feedback.
networking
routing
nat
vagrant
Numbata
quelle
quelle
Antworten:
Seit Release 1.3.0:
Sie müssen nur diese Konfiguration in Ihr Vagrantfile (Dokumentation) einfügen :
Diese Vagrant-Sache ist wirklich toll :-)
quelle
Nach zwei Wochen habe ich meine Frage so gelöst:
Kochbuch erzeugt Vagrantfile aus Vorlage:
rebuild-iptables muss iptables-Regeln generieren und anwenden:
Und:
Jetzt kann ich Anwendungen auf der Box installieren und über eine öffentliche statische IP-Adresse eine Verbindung herstellen, ohne dass das Setup für "port_forwarding" erforderlich ist (wie bei VPS).
quelle
Was Sie wirklich brauchen, ist eine überbrückte Schnittstelle mit einer statischen IP. Leider unterstützt Vagrant dies noch nicht (siehe Diskussion hier ).
Stellen Sie zunächst box_config.vm.network: bridged ein, wenn Sie virtualbox benötigen, um eine Bridged-Schnittstelle zu erstellen, und Sie können die Datei box_config.vm.network: hostonly entfernen.
Sie können die Shell-Bereitstellung verwenden , um das Netzwerk mit Ihrer IP-Adresse neu zu konfigurieren. Sie können jedoch die Datei / etc / network / interfaces nicht ändern. Andernfalls kann die VM nicht wieder gestartet werden, wenn Sie einen vagabunden Stopp ausführen (dies wird von vagabunden versucht) und konfigurieren Sie die Netzwerkschnittstellen neu, und es stirbt, wenn Sie diese Datei geändert haben).
Die Alternative besteht also darin, ein Skript in /etc/network/if-up.d/ zu erstellen, mit dem die IP-Adresse für die Schnittstelle neu festgelegt wird. Nicht ideal, aber ich habe noch keine bessere Lösung gefunden!
Siehe relevante Abschnitte der Konfiguration unten. Im Bash-Skript sollten Sie die IP- / Netzmaske, das Gateway und den DNS (und die Schnittstellennummer, falls Ihre Nummer anders ist, sollte sie eth1 lauten, wenn Sie gerade in Vagrantfile überbrückt wurden).
Wenn Sie also zum ersten Mal vagrant up ausführen und die VM erstellen, wird ein Skript /etc/network/if-up.d/custom-network-config erstellt, mit dem die IP-Konfiguration, das Routing und der Neustart von Apache festgelegt werden (dies ist erforderlich) Ändern Sie dies, wenn Sie andere Dienste verwenden, die von der Netzwerkkonfiguration abhängig sind, und DNS festgelegt wird.
Wenn Sie sich dann erneut aufmachen, während die VM bereits vorhanden ist (z. B. nach einem vagabunden Stopp), müssen Sie lediglich die Netzwerkschnittstellen neu starten, damit das Skript ausgeführt und die Schnittstelle konfiguriert wird (aus irgendeinem Grund wurde festgestellt, dass das Skript nicht gekickt wurde) aus, als die VM eingeschaltet wurde und die Schnittstellen anfänglich eingerichtet wurden - nicht sicher warum).
Vagrantfile
vagrant-setup.sh
quelle