Vagrant でマルチVM
一つのシステムで複数のサーバで構成されるのは、よくあることだ。
Vagrant では、一つの設定ファイルで複数の仮想サーバを管理する仕組みも用意してある。
http://docs-v1.vagrantup.com/v1/docs/multivm.html
Vagrantfile という設定ファイルで管理されている。マルチVMの設定例は以下の通り。
Vagrant::Config.run do |config| config.vm.box = "base" config.vm.define :web do |web_config| end config.vm.define :db do |db_config| end end
上記の例では、web と db の2つの仮想マシンを定義した。
それぞれの仮想マシンを起動する場合、vagrant up コマンドにVM名を付けて実行する。
vagrant up web vagrant up db
# web に接続
vagrant ssh web
仮想マシン間のネットワーク通信
VirtualBox のホストオンリーアダプタを利用すると、仮想マシン間もネットワークで通信ができるようになる。これで Web - DB 間の通信を再現できる。
Vagrantfile に設定を追加するだけで、仮想マシン起動時に自動的にネットワークの設定をしてくれる。
Vagrant::Config.run do |config| config.vm.box = "base" config.vm.define :web do |web_config| web_config.vm.network "192.168.1.10" end config.vm.define :db do |db_config| db_config.vm.network "192.168.1.11" end end