Bu yüzden MAC kitabımda Vagrant 'hashicorp / precise64' kurulumunda sorun yaşıyorum.
İlk olarak, config:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) yapmak | config | config.vm.box = "hashicorp / precise64" config.vm.network "public_network", şunu yazın: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" son
Bu 'sersemlemiş' in çıkması
==> varsayılan: VM’nin zarif kapatılması deneniyor ... ==> varsayılan: 'hashicorp / precise64' kutusunun güncel olup olmadığını kontrol ediyor ... ==> varsayılan: Önceden ayarlanmış herhangi bir iletilmiş bağlantı noktasının temizlenmesi ... ==> default: Önceden ayarlanmış tüm ağ arayüzlerini temizle ... ==> varsayılan: Konfigürasyona göre ağ arayüzleri hazırlanıyor ... varsayılan: Adaptör 1: nat varsayılan: Adaptör 2: köprülü ==> varsayılan: Bağlantı noktaları iletiliyor ... varsayılan: 22 => 2222 (adaptör 1) ==> varsayılan: VM'de Önyükleme ... ==> varsayılan: Makinenin önyüklenmesi bekleniyor. Bu bir kaç dakika alabilir... varsayılan: SSH adresi: 127.0.0.1:2222 varsayılan: SSH kullanıcı adı: serseri varsayılan: SSH auth yöntemi: özel anahtar varsayılan: Uyarı: Bağlantı zaman aşımına uğradı. Tekrar deniyor ... ==> varsayılan: Makine açıldı ve hazır! Misafir Ekleri 4.3.10 çalışıyor --- Tamam. ==> varsayılan: VM'de misafir eklemeleri kontrol ediliyor ... ==> varsayılan: Ana bilgisayar adı ayarlanıyor ... ==> default: Ağ arayüzlerini yapılandırma ve etkinleştirme ... ==> varsayılan: Paylaşılan klasörlerin takılması ... varsayılan: / vagrant => / Kullanıcılar / garthm / Projeler / vagrant ==> varsayılan: Makine zaten hazır. “Serseri hükmü” çalıştırın veya `--provision` kullanın. ==> varsayılan: hazırlığı zorlamak için. Çalışmak için işaretlenmiş hazırlayıcılar her zaman çalışmaya devam eder.
'ifconfig' aşağıdakileri gösterir:
vagrant @ mddirector: ~ $ ifconfig eth0 Link encap: Ethernet Hızı 08: 00: 27: 88: 0c: a6 inet addr: 10.0.2.15 Yayın: 10.0.2.255 Maske: 255.255.255.0 inet6 addr: fe80 :: a00: 27ff: fe88: ca6 / 64 Kapsam: Bağlantı YAYIN YAYINLI ÇALIŞMA ÇOKLU MTU: 1500 Metrik: 1 RX paketleri: 725 hataları: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0 TX paketler: 544 hatalar: 0 düşürüldü: 0 aşıldı: 0 taşıyıcı: 0 çarpışmalar: 0 txqueuelen: 1000 RX bayt: 90824 (90,8 KB) TX bayt: 63375 (63,3 KB) eth1 Link encap: Ethernet Hızı 08: 00: 27: 2f: bb: 6a giriş adresi: 10.0.24.118 Yayın: 10.0.31.255 Maske: 255.255.248.0 YAYIN YAYINLI ÇALIŞMA ÇOKLU MTU: 1500 Metrik: 1 RX paketleri: 3490 hataları: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0 TX paketleri: 7 hata: 0 bırakıldı: 0 aşıldı: 0 taşıyıcı: 0 çarpışmalar: 0 txqueuelen: 1000 RX bayt: 345981 (345,9 KB) TX bayt: 1102 (1,1 KB) lo Bağlantı encap: Yerel Geri Döngü inet addr: 127.0.0.1 Maske: 255.0.0.0 inet6 addr: :: 1/128 Kapsam: Ev sahibi UP LOOPBACK ÇALIŞMA MTU: 16436 Metrik: 1 RX paketleri: 0 hata: 0 bırakıldı: 0 aşıldı: 0 çerçeve: 0 TX paketleri: 0 hata: 0 bırakıldı: 0 aşıldı: 0 taşıyıcı: 0 çarpışmalar: 0 txqueuelen: 0 RX bayt: 0 (0.0 B) TX bayt: 0 (0.0 B)
Benim sorunum benim ana makinede (den VM ping olabilir, yani IP: 10.0.24.112
), diğer insanlar (benim de benim VM ping olabilir 10.0.24.XXX
, benim VM benim devbox (ping olabilir) IP: 10.10.116.254
(benim devbox diğer geliştiricilere sanal makine kurulumları ping olabilir) Vagrant değil, IP: 10.10.116.254
), ancak VM'mi devbox'ımdan pingleyemiyorum ve diğer geliştiriciler VM'mi devbox'larından pingleyemiyorum.
Sahip oldukları Sanal makine ayarları yalnızca Bridged NIC ile yapılır, ancak bazı nedenlerden ötürü sicim NAT ve Bridged'a sahiptir. Gördüğünüz gibi Vagrant VM için doğru görünmeyen iki IP adresi var. Ayrıca, önyükleme yaparken, NAT bağdaştırıcısı olan Bağdaştırıcı 1'de ileriye bir bağlantı noktası yapar; bu, NAT bağdaştırıcısını her şey için varsayılan olarak kullanıyor gibi göründüğü anlamına gelir.
NAT adaptöründen nasıl kurtulurum ve sadece köprüyü kullanırım?
VirtualBox ayarlarını düzenlersem ve NAT bağdaştırıcısını devre dışı bırakırsam, yalnızca köprülenmiş Bağdaştırıcı var ve kutuyu VirtualBox aracılığıyla başlatırsanız (yani: sersem yukarı kullanmazsanız), o zaman sadece benim devbox'ımdan pingable olan bir IP adresi olan eth0 olur. , aradığım şey bu. VirtualBox ayarlarını düzenledikten ve NAT bağdaştırıcısını devre dışı bıraktıktan sonra kutuyu ayarlayıp denersen, aşağıdaki hatayı alıyorum:
Vagrant tarafından kullanılan bir CLI olan “VBoxManage” yürütülürken bir hata oluştu. VirtualBox'ı kontrol etmek için. Komut ve stderr aşağıda gösterilmiştir. Komut: ["modifyvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1,2222, 22"] Stderr: VBoxManage: error: Bu ismin NAT kuralı zaten var VBoxManage: error: Ayrıntılar: kod NS_ERROR_INVALID_ARG (0x80070057), NATEngine bileşeni, INATEngine arabirimi, callee nsISupports VBoxManage: error: Bağlam: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGuestIp) .raw () VBoxManageModifyVM.cpp dosyasının satır 1655
Hemen hemen bir sersemletirirsem, NAT adaptörünü yeniden etkinleştirdi ve yine aynı sorunu yaşamaya geri döndük.