Saya memiliki server (Debian Squeeze) dengan 1 kartu ethernet dan 2 IP statis publik (188.120.245.4 dan 188.120.244.5).
Yang saya inginkan: Setup virtual box (Ubuntu) dengan akses melalui IP statis (188.120.244.5).
Apa yang saya coba:
- config.vm.forward_port - ide bagus: setup interface "eth1: 1" dengan 188.120.244.5 pada mesin host, dan tambahkan ke file Vagrant "config.vm.forward_port = hmm ..?"
- config.vm.network: hostonly, "188.120.244.5" - tidak berfungsi. Dibuat antarmuka baru pada mesin host dengan ip "188.120.244.1". Tentu saja 188.120.244.1 IP bukan milik saya dan saya tidak dapat mengakses server saya melalui IP ini.
- config.vm.network: bridged - Saya bingung cara kerjanya :)
Apa yang saya miliki sekarang: Konfigurasi tidak berfungsi.
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
Bagaimana saya bisa mengakses kotak virtual melalui IP statis publik dari jaringan?
Saya menggunakan Oracle VM VirtualBox Manager 4.1.18 dan Vagrant versi 1.0.3.
Terima kasih sebelumnya atas tanggapan Anda.
networking
routing
nat
vagrant
Numbata
sumber
sumber
Jawaban:
Sejak rilis 1.3.0:
Anda hanya perlu meletakkan konfigurasi ini di Vagrantfile Anda (dokumentasi) :
Hal Vagrant ini benar-benar hebat :-)
sumber
Setelah dua minggu, saya menyelesaikan pertanyaan saya seperti ini:
Cookbook menghasilkan Vagrantfile dari templat:
rebuild-iptables perlu membuat dan menerapkan aturan iptables:
Dan:
Sekarang, saya dapat menginstal aplikasi ke kotak dan menyambungkannya melalui ip statis publik tanpa pengaturan "port_forwarding" (Seperti pada VPS).
sumber
Yang benar-benar Anda butuhkan adalah antarmuka yang dijembatani dengan IP statis. Sayangnya, gelandangan belum mendukung ini (lihat diskusi di sini ).
Pertama-tama, atur box_config.vm.network: dijembatani karena Anda memerlukan virtualbox untuk membuat antarmuka yang dijembatani, dan Anda dapat menghapus box_config.vm.network: hostonly.
Anda dapat menggunakan provisi shell untuk mengkonfigurasi ulang jaringan dengan IP Anda, tetapi Anda tidak dapat memodifikasi file / etc / network / interfaces atau VM tidak akan dapat kembali jika Anda melakukan penghentian gelandangan (melakukan gelandangan akan mencoba dan mengkonfigurasi ulang antarmuka jaringan, dan mati jika Anda memodifikasi file itu).
Jadi, alternatifnya adalah membuat skrip di /etc/network/if-up.d/ yang mengatur ulang IP untuk antarmuka. Tidak ideal, tapi saya belum menemukan solusi yang lebih baik!
Lihat bagian konfigurasi yang relevan di bawah ini. Pada skrip bash Anda harus mengatur IP / netmask, gateway dan DNS (dan nomor antarmuka, jika Anda berbeda, itu harus et1 meskipun jika Anda baru saja mengatur bridged di Vagrantfile).
Jadi, pertama kali Anda melakukan gelandangan dan menciptakan VM itu menciptakan skrip /etc/network/if-up.d/custom-network-config yang mengatur konfigurasi IP, perutean, dan restart apache (Anda perlu modifikasi ini jika Anda menggunakan layanan lain yang bergantung pada konfigurasi jaringan), dan ini akan mengatur DNS.
Kemudian jika Anda melakukan gelran lagi ketika VM sudah ada (misalnya setelah melakukan gelandangan berhenti) semua yang dilakukannya adalah me-restart antarmuka jaringan sehingga skrip dijalankan dan antarmuka dikonfigurasi (untuk beberapa alasan, saya menemukan skrip tidak ditendang mati ketika VM dihidupkan dan antarmuka muncul pada awalnya - tidak yakin mengapa).
Vagrantfile
vagrant-setup.sh
sumber