Ich habe also ein Problem mit der Vagrant-Konfiguration von 'hashicorp / precision64' in meinem MAC-Buch.
Zuerst meine Konfiguration:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / exact64" config.vm.network "public_network", Typ: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" Ende
Dies ist die Ausgabe des "Vagabunden"
==> Standard: Versucht das ordnungsgemäße Herunterfahren der VM ... ==> default: Überprüfe ob das Kästchen 'hashicorp / exact64' aktuell ist ... ==> Standard: Löscht alle zuvor eingestellten weitergeleiteten Ports ... ==> Standard: Löscht alle zuvor eingestellten Netzwerkschnittstellen ... ==> Standard: Vorbereiten der Netzwerkschnittstellen basierend auf der Konfiguration ... Voreinstellung: Adapter 1: nat Standard: Adapter 2: überbrückt ==> Standard: Ports werden weitergeleitet ... Standard: 22 => 2222 (Adapter 1) ==> Standard: VM wird gestartet ... ==> Standard: Warten auf den Start der Maschine. Das kann ein paar minuten dauern... Standard: SSH-Adresse: 127.0.0.1:2222 Standard: SSH-Benutzername: vagrant Standard: SSH-Authentifizierungsmethode: Privater Schlüssel Standard: Warnung: Verbindungszeitüberschreitung. Wiederholen ... ==> Standard: Maschine gestartet und bereit! GuestAdditions 4.3.10 wird ausgeführt --- OK. ==> Standard: Suche nach Gastzugängen in VM ... ==> Standard: Hostname einstellen ... ==> Standard: Netzwerkschnittstellen konfigurieren und aktivieren ... ==> Standard: Mounten freigegebener Ordner ... Standardeinstellung: / vagrant => / Users / garthm / Projects / vagrant ==> Standard: Maschine bereits bereitgestellt. Führen Sie `vagrant provision` aus oder verwenden Sie die` --provision` ==> Standard: Provisioning erzwingen. Provisioner, die für die Ausführung markiert sind, werden weiterhin ausgeführt.
'ifconfig' zeigt Folgendes:
vagrant @ mddirector: ~ $ ifconfig eth0 Verbindungskapsel: Ethernet HWaddr 08: 00: 27: 88: 0c: a6 inet addr: 10.0.2.15 Bcast: 10.0.2.255 Mask: 255.255.255.0 inet6 addr: fe80 :: a00: 27ff: fe88: ca6 / 64 Gültigkeitsbereich: Link UP BROADCAST RUNNING MULTICAST MTU: 1500 Metrisch: 1 RX-Pakete: 725 Fehler: 0 verworfen: 0 Überläufe: 0 Rahmen: 0 TX-Pakete: 544 Fehler: 0 verworfen: 0 Überläufe: 0 Träger: 0 Kollisionen: 0 txqueuelen: 1000 Empfangsbytes: 90824 (90,8 KB) Sendebytes: 63375 (63,3 KB) eth1 Verbindungskapsel: Ethernet HWaddr 08: 00: 27: 2f: bb: 6a inet addr: 10.0.24.118 Bcast: 10.0.31.255 Mask: 255.255.248.0 UP BROADCAST RUNNING MULTICAST MTU: 1500 Metrisch: 1 RX-Pakete: 3490 Fehler: 0 verworfen: 0 Überläufe: 0 Rahmen: 0 TX-Pakete: 7 Fehler: 0 fallen gelassen: 0 Überläufe: 0 Träger: 0 Kollisionen: 0 txqueuelen: 1000 Empfangsbytes: 345981 (345,9 KB) Sendebytes: 1102 (1,1 KB) lo Link encap: Lokales Loopback inet addr: 127.0.0.1 Mask: 255.0.0.0 inet6 addr: :: 1/128 Gültigkeitsbereich: Host UP LOOPBACK RUNNING MTU: 16436 Metrisch: 1 Empfangspakete: 0 Fehler: 0 Verworfen: 0 Überschreitungen: 0 Rahmen: 0 TX-Pakete: 0 Fehler: 0 verworfen: 0 Überläufe: 0 Träger: 0 Kollisionen: 0 txqueuelen: 0 RX-Bytes: 0 (0,0 B) TX-Bytes: 0 (0,0 B)
Mein Problem ist, dass ich die VM von meinem Hostrechner aus anpingen kann ( IP: 10.0.24.112
), andere Leute können meine VM auch 10.0.24.XXX
anpingen ( IP: 10.10.116.254
), meine VM kann meine Devbox anpingen ( ), ich kann die Setups anderer Entwickler virtueller Maschinen von meiner Devbox aus anpingen ( nicht Vagrant, IP: 10.10.116.254
), aber ich kann meine VM nicht von meiner Devbox aus anpingen, und andere Entwickler können meine VM nicht von ihrer Devbox aus anpingen.
Die Einrichtung der virtuellen Maschine ist nur mit einer Bridged-Netzwerkkarte möglich, aber der Vagrant hat aus irgendeinem Grund sowohl eine NAT als auch eine Bridged-Konfiguration, obwohl ich Bridged in der Konfiguration angegeben habe. Wie Sie sehen, gibt es zwei IP-Adressen für die Vagrant-VM, die nicht richtig zu sein scheinen. Sie können auch beim Booten einen Port-Forward für Adapter 1 ausführen, bei dem es sich um den NAT-Adapter handelt. Dies bedeutet, dass der NAT-Adapter standardmäßig für alle verwendet wird.
Wie entferne ich den NAT-Adapter und verwende nur Bridged?
Wenn ich die VirtualBox-Einstellungen bearbeite und den NAT-Adapter deaktiviere, es also nur den überbrückten Adapter gibt und die Box über VirtualBox hochfährt (dh nicht Vagrant Up verwendet), hat sie nur eth0 mit einer IP-Adresse, die von meiner Devbox aus pingfähig ist , wonach ich suche. Wenn ich versuche, die Box nach dem Bearbeiten der VirtualBox-Einstellungen und dem Deaktivieren des NAT-Adapters zu vergrößern, wird die folgende Fehlermeldung angezeigt:
Beim Ausführen von `VBoxManage`, einer von Vagrant verwendeten CLI, ist ein Fehler aufgetreten zur Steuerung der VirtualBox. Der Befehl und stderr wird unten gezeigt. Befehl: ["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1,2222,, 22"] Stderr: VBoxManage: error: Eine NAT-Regel dieses Namens ist bereits vorhanden VBoxManage: Fehler: Details: Code NS_ERROR_INVALID_ARG (0x80070057), Komponente NATEngine, Schnittstelle INATEngine, Angerufene nsISupports VBoxManage: Fehler: Kontext: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestPort)" bei Zeile 1655 der Datei VBoxManageModifyVM.cpp
Wenn ich sofort wieder einen Vagabund mache, hat er den NAT-Adapter wieder aktiviert und wir haben wieder das gleiche Problem.
Die kurze Antwort scheint nicht zu sein.
Sie können Adapter 1 überschreiben, aber zumindest mit Problemen rechnen
vagrant ssh
Produziert:
Leider scheint es dann zu blockieren, den Netzwerkadapter zu konfigurieren, aber vielleicht haben Sie mehr Glück als ich.
Wenn Sie dies tun, können Sie immer mit einer korrigierten Kraft anhalten und neu laden
ssh.host
. Alternativ habe ich davon gehört, esvagrant dns
aber nie ausprobiert.quelle
Ich fand diese Diskussion auf StackOverflow.
Für mich hat es gereicht, die dazugehörige
Vagrantfile
Zeile zu öffnen und das Kommentarzeichen zu entfernen:und dann rennen
vagrant reload
quelle