Mam więc problem z błędną konfiguracją „hashicorp / exact64” na mojej książce MAC.
Po pierwsze, moja konfiguracja:
VAGRANTFILE_API_VERSION = „2” Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / precision64" config.vm.network „public_network”, wpisz: „dhcp”,: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" koniec
Na tym polega „włóczęgostwo w górę”
==> domyślnie: Próba płynnego zamknięcia VM ... ==> domyślnie: Sprawdzanie, czy pole „hashicorp / precision64” jest aktualne ... ==> domyślnie: Czyszczenie wszystkich wcześniej ustawionych przekierowanych portów ... ==> domyślnie: Czyszczenie wcześniej ustawionych interfejsów sieciowych ... ==> domyślnie: Przygotowanie interfejsów sieciowych na podstawie konfiguracji ... domyślnie: Adapter 1: nat domyślnie: Adapter 2: zmostkowany ==> domyślnie: porty przekazujące ... domyślnie: 22 => 2222 (adapter 1) ==> domyślnie: Ładowanie VM ... ==> domyślnie: Oczekiwanie na uruchomienie komputera. To może zająć parę minut... domyślnie: adres SSH: 127.0.0.1:2222 domyślnie: nazwa użytkownika SSH: włóczęga domyślnie: metoda autoryzacji SSH: klucz prywatny domyślnie: Ostrzeżenie: Limit czasu połączenia. Ponawiam ... ==> domyślnie: Maszyna uruchomiona i gotowa! GuestAdditions 4.3.10 działa --- OK. ==> domyślnie: Sprawdzanie dodawania gości na VM ... ==> domyślnie: ustawianie nazwy hosta ... ==> domyślnie: Konfigurowanie i włączanie interfejsów sieciowych ... ==> domyślnie: Montowanie folderów współdzielonych ... default: / vagrant => / Users / garthm / Projects / vagrant ==> domyślnie: maszyna jest już skonfigurowana. Uruchom `włóczęgowe postanowienie` lub użyj` --provision` ==> domyślnie: aby wymusić obsługę administracyjną. Dostawcy wyznaczeni do działania zawsze będą nadal działać.
„ifconfig” pokazuje, co następuje:
vagrant @ mddirector: ~ $ ifconfig eth0 Link encap: Ethernet HWaddr 08: 00: 27: 88: 0c: a6 adres inet: 10.0.2.15 Bcast: 10.0.2.255 Maska: 255.255.255.0 inet6 addr: fe80 :: a00: 27ff: fe88: ca6 / 64 Zakres: Link UP BROADCAST RUNNING MULTICAST MTU: 1500 Metryczne: 1 Pakiety RX: 725 błędów: 0 odrzuconych: 0 przekroczeń: 0 ramek: 0 Pakiety TX: 544 błędy: 0 usunięte: 0 przekroczeń: 0 operator: 0 kolizje: 0 txqueuelen: 1000 Bajty RX: 90824 (90,8 KB) Bajty TX: 63375 (63,3 KB) Interfejs eth1 Link: Ethernet HWaddr 08: 00: 27: 2f: bb: 6a adres inet: 10.0.24.118 Bcast: 10.0.31.255 Maska: 255.255.248.0 UP BROADCAST RUNNING MULTICAST MTU: 1500 Metryczne: 1 Pakiety RX: 3490 błędów: 0 odrzuconych: 0 przekroczeń: 0 ramek: 0 Pakiety TX: 7 błędów: 0 odrzuconych: 0 przekroczeń: 0 nośnych: 0 kolizje: 0 txqueuelen: 1000 Bajty RX: 345981 (345,9 KB) Bajty TX: 1102 (1,1 KB) lo Link encap: Lokalna pętla zwrotna adres inet: 127.0.0.1 Maska: 255.0.0.0 inet6 addr: :: 1/128 Zakres: Host UP UP LOOPBACK RUNNING MTU: 16436 Metryczne: 1 Pakiety RX: 0 błędów: 0 odrzuconych: 0 przekroczeń: 0 ramek: 0 Pakiety TX: 0 błędów: 0 odrzuconych: 0 przekroczeń: 0 nośnych: 0 kolizje: 0 txqueuelen: 0 Bajty RX: 0 (0,0 B) Bajty TX: 0 (0,0 B)
Mój problem polega na tym, że mogę pingować maszynę wirtualną z mojego hosta ( IP: 10.0.24.112
), inni też 10.0.24.XXX
mogą pingować moją maszynę wirtualną ( ), moja maszyna wirtualna może pingować moją devbox ( IP: 10.10.116.254
), mogę pingować konfiguracje maszyn wirtualnych innych programistów z mojego devbox ( nie Vagrant IP: 10.10.116.254
), ale nie mogę pingować mojej maszyny wirtualnej z mojego devbox, a inny programista nie może pingować mojej maszyny wirtualnej z ich devbox.
Ustawienia maszyn wirtualnych, które mają, są tylko z Bridged NIC, ale włóczęga z jakiegoś powodu ma zarówno NAT, jak i Bridged, chociaż określiłem mostek w konfiguracji. Jak widać, Vagrant VM ma dwa adresy IP, co nie wydaje się właściwe. Podczas uruchamiania można również przesłać port na adapterze 1, który jest adapterem NAT, co oznacza, że wygląda na to, że domyślnie używa adaptera NAT do wszystkiego.
Jak pozbyć się adaptera NAT i używać tylko mostka?
Jeśli edytuję ustawienia VirtualBox i wyłączam adapter NAT, więc jest tylko zmostkowany adapter i uruchamiam urządzenie przez VirtualBox (tzn. Nie używam Vagrant up), to ma on tylko eth0 z adresem IP, który można pingować z mojego devbox , czego szukam. Jeśli spróbuję włóczyć się po polu po edycji ustawień VirtualBox i wyłączeniu adaptera NAT, pojawia się następujący błąd:
Wystąpił błąd podczas wykonywania `VBoxManage`, CLI używanego przez Vagrant do kontrolowania VirtualBox. Polecenie i stderr pokazano poniżej. Polecenie: [„modyfikvm”, „7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3”, „--natpf1”, „ssh, tcp, 127.0.0.1,2222,, 22”] Stderr: VBoxManage: error: Reguła NAT o tej nazwie już istnieje VBoxManage: błąd: Szczegóły: kod NS_ERROR_INVALID_ARG (0x80070057), komponent NATEngine, interfejs INATEngine, callee nsIS obsługuje VBoxManage: error: Context: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestPort)) wiersz 1655 pliku VBoxManageModifyVM.cpp
Jeśli od razu zrobię włóczęgę, ponownie włączyłem adapter NAT i znów mamy ten sam problem.
Krótka odpowiedź wydaje się brzmieć „nie”.
Możesz zastąpić adapter 1, ale oczekuj przynajmniej problemów
vagrant ssh
Produkuje:
Niestety wydaje się wtedy, że blokuje się konfiguracja karty sieciowej, ale może będziesz mieć więcej szczęścia niż ja.
Jeśli to zrobisz, zawsze możesz wymusić zatrzymanie i przeładować z poprawionym
ssh.host
. Alternatywnie słyszałem,vagrant dns
ale nigdy nie próbowałem.źródło
Znalazłem tę dyskusję na StackOverflow.
Dla mnie wystarczyło otworzyć powiązaną
Vagrantfile
i odkomentować następujący wiersz:a następnie biegnij
vagrant reload
źródło