ちょっと詰まったことがあったのでメモ書き これ書いてる時点でVagrantのバージョンは 1.4.1 となります
Virtualboxのネットワークアダプタにはいくつか種類があり
- NAT
- ゲストOS -> 外
- 内部ネットワーク
- ゲストOS <-> ゲストOS
- ホストオンリーアダプタ
- ホスト -> ゲストOS
あたりを組み合わせて遊んだりするのですが、Vagrant で内部ネットワークを設定する方法が分かりづらかったのでメモ
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "box_name"
config.vm.define :host1 do |host1|
host1.vm.hostname = "host1"
host1.vm.network :private_network, ip: "192.168.1.111", virtualbox__intnet: "intnet"
end
config.vm.define :host2 do |host2|
host2.vm.hostname = "host2"
host2.vm.network :private_network, ip: "192.168.1.112", virtualbox__intnet: "intnet"
end
config.vm.provision "shell", inline: "/etc/init.d/network restart"
end
抜粋するとこんな感じ
Private Networks - Networking - Vagrant Documentation とか見てると
virtualbox__intnet: true
とか書いてるけどそのまま設定すると「(trueが)文字列じゃねーよゴルァ!」と怒られるので、何かしら文字列を指定してあげる。
Virtualboxで設定した場合、内部ネットワークを指定した時のデフォルトが intnet なのでintnetで良いでしょう。
で、これで内部ネットワークの設定が出来るのですが初回の vagrant up 直後はNATによる設定で外に行けるはずなのに繋がらなかったりするので、
Shell Provisionerでnetworkの再起動をしてます。もっとスマートなやりかたあればいいんだけど。