###環境
- Vagrant 1.3.5
- VirtualBox 4.3.12
- CentOS 6.5
###設定
Vagrantfileのconfig.vm.network
の設定を以下の通りにする。
Vagrantfile
config.vm.network :public_network, :auto_config => false
config.vm.provision :shell, :path => "bootstrap.sh"
Boxのフォルダに以下の内容のshellスクリプトを置く(Vagrantfileと同階層のところね)
bootstrap.sh
#/bin/sh
sudo ifconfig eth1 192.168.0.10 netmask 255.255.255.0 up
sudo ip route del default gw 10.0.2.2 eth0
sudo ip route add default gw 192.168.0.1 eth1
いろいろ情報が散乱してたので、自分でまとめてみた。
###なんでこんなめんどくさいことを?
通常、public network設定でIP固定にしたい場合は以下の内容で十分だった。
Vagrantfile
config.vm.network :public_network, ip: "192.168.0.10"
でもこれだとApacheなどでWebサーバーを立てた時、ホストPC以外からアクセスができないという問題にぶちあたる。(publicなのに!)
どーもVagrantのBox起動時にroute設定が勝手にされちゃうようで、default routeの設定がおかしくなる。
なのでbootstrap.sh
でそこを上書きしちゃおうという内容ですね。