Jadi saya mengalami masalah dengan setup Vagrant dari 'hashicorp / precision64' di buku MAC saya.
Pertama, konfigurasi saya:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure (VAGRANTFILE_API_VERSION) do | config | config.vm.box = "hashicorp / precision64" config.vm.network "public_network", ketik: "dhcp",: bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" akhir
Ini adalah kelebihan dari 'gelandangan'
==> default: Mencoba mematikan VM ...
==> default: Memeriksa apakah kotak 'hashicorp / precision64' sudah terbaru ...
==> default: Menghapus port penerusan yang diatur sebelumnya ...
==> default: Menghapus semua antarmuka jaringan yang ditetapkan sebelumnya ...
==> default: Mempersiapkan antarmuka jaringan berdasarkan konfigurasi ...
default: Adaptor 1: nat
default: Adaptor 2: dijembatani
==> default: Meneruskan port ...
default: 22 => 2222 (adaptor 1)
==> default: Booting VM ...
==> default: Menunggu mesin untuk boot. Ini mungkin memakan waktu beberapa menit ...
default: alamat SSH: 127.0.0.1.1222
default: nama pengguna SSH: gelandangan
default: metode auth SSH: kunci pribadi
default: Peringatan: Batas waktu koneksi. Mencoba lagi ...
==> default: Mesin boot dan siap!
GuestAdditions 4.3.10 berjalan --- OK.
==> default: Memeriksa penambahan tamu di VM ...
==> default: Mengatur nama host ...
==> default: Mengkonfigurasi dan mengaktifkan antarmuka jaringan ...
==> default: Memasang folder bersama ...
default: / gelandangan => / Pengguna / garthm / Proyek / gelandangan
==> default: Mesin sudah disediakan. Jalankan `ketentuan gelandangan` atau gunakan` --provisi`
==> default: untuk memaksakan provisi. Penyedia yang ditandai untuk menjalankan selalu akan tetap berjalan.
'ifconfig' menunjukkan yang berikut:
vagrant @ mddirector: ~ $ ifconfig
eth0 Link encap: Ethernet HWaddr 08: 00: 27: 88: 0c: a6
inet addr: 10.0.2.15 Bcast: 10.0.2.255 Topeng: 255.255.255.0
inet6 addr: fe80 :: a00: 27ff: fe88: ca6 / 64 Lingkup: Tautan
UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1
Paket RX: 725 kesalahan: 0 turun: 0 overruns: 0 bingkai: 0
Paket TX: 544 kesalahan: 0 jatuh: 0 overruns: 0 operator: 0
tabrakan: 0 txqueuelen: 1000
RX byte: 90824 (90,8 KB) TX byte: 63375 (63,3 KB)
eth1 Link encap: Ethernet HWaddr 08: 00: 27: 2f: bb: 6a
inet addr: 10.0.24.118 Bcast: 10.0.31.255 Topeng: 255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1
Paket RX: 3490 kesalahan: 0 jatuh: 0 overruns: 0 bingkai: 0
Paket TX: 7 kesalahan: 0 jatuh: 0 overruns: 0 operator: 0
tabrakan: 0 txqueuelen: 1000
RX byte: 345981 (345,9 KB) TX byte: 1102 (1,1 KB)
lo Link encap: Local Loopback
inet addr: 127.0.0.1 Mask: 255.0.0.0
inet6 addr: :: 1/128 Cakupan: Host
MENJALANKAN LOOPBACK MTU: 16436 Metrik: 1
Paket RX: 0 kesalahan: 0 jatuh: 0 overruns: 0 bingkai: 0
Paket TX: 0 kesalahan: 0 jatuh: 0 overruns: 0 operator: 0
tabrakan: 0 txqueuelen: 0
Bita RX: 0 (0,0 B) Bita TX: 0 (0,0 B)
Masalah saya adalah, bahwa saya dapat melakukan ping VM dari mesin host saya ( IP: 10.0.24.112), orang lain juga dapat melakukan ping VM saya ( 10.0.24.XXX), VM saya dapat melakukan ping devbox saya ( IP: 10.10.116.254), saya dapat melakukan ping ke pengembang lain pengaturan mesin virtual dari devbox saya () bukan Vagrant, IP: 10.10.116.254), tapi saya tidak bisa ping VM saya dari devbox saya dan pengembang lain tidak bisa ping VM saya dari devbox mereka.
Pengaturan mesin virtual yang mereka miliki adalah dengan Bridged NIC saja, tetapi gelandangan karena alasan tertentu memiliki NAT dan Bridged, meskipun, saya telah menentukan bridged di konfigurasi. Seperti yang Anda lihat, ada dua alamat IP untuk Vagrant VM, yang sepertinya tidak benar. Anda juga dapat, saat boot up, melakukan port forward pada Adapter 1, yang merupakan adaptor NAT, yang artinya sepertinya menggunakan adaptor NAT secara default untuk semuanya.
Bagaimana cara saya menyingkirkan adaptor NAT dan hanya menggunakan bridged?
Jika saya mengedit pengaturan VirtualBox dan menonaktifkan adaptor NAT, jadi hanya ada Adapter yang terhubung dan boot kotak melalui VirtualBox (yaitu: tidak menggunakan gelandangan), maka itu hanya memiliki eth0 dengan alamat IP yang dapat ping dari devbox saya , itulah yang saya cari. Jika saya mencoba dan menggagalkan kotak setelah mengedit pengaturan VirtualBox dan menonaktifkan adaptor NAT, saya mendapatkan kesalahan berikut:
Ada kesalahan saat menjalankan `VBoxManage`, CLI yang digunakan oleh Vagrant untuk mengendalikan VirtualBox. Perintah dan stderr ditunjukkan di bawah ini. Perintah: ["modvvm", "7f1c12f7-74cd-4c6b-aa5a-16d6209cf2b3", "--natpf1", "ssh, tcp, 127.0.0.1.22222, 22"] Stderr: VBoxManage: error: Aturan NAT dari nama ini sudah ada VBoxManage: error: Detail: kode NS_ERROR_INVALID_ARG (0x80070057), komponen NATEngine, antarmuka INATEngine, callee nsISupports VBoxManage: error: Konteks: "AddRedirect (Bstr (strName) .raw (), proto, Bstr (strHostIp) .raw (), RTStrToUInt16 (strHostPort), Bstr (strGuestIp) .raw (), RTStrToUInt16 (strGestest)) baris 1655 dari file VBoxManageModifyVM.cpp
Jika saya segera melakukan gelandangan lagi, itu telah mengaktifkan kembali adaptor NAT lagi, dan kami kembali memiliki masalah yang sama lagi.