Vagrantにて一つのVagrantfileで複数の仮想マシンを立ち上げる方法についてです。
環境
- Vagrant 1.9.1
Vagrantfileの書き方
config.vm.define
ブロックを使います。
初期状態では、次のように一つの仮想マシンが定義されています。
Vagrant.configure(2) do |config| config.vm.box = "bento/ubuntu-16.04" config.vm.network "private_network", ip: "192.168.33.10" # 省略 end
複数の仮想マシンに対応する場合は、config.vm.define <マシン名>
のブロック内に定義を入れます。
もともとのマシンを活かす場合は、次のようにマシン名を”default
“にします。
Vagrant.configure(2) do |config| config.vm.define "default" do |v| v.vm.box = "bento/ubuntu-16.04" v.vm.network "private_network", ip: "192.168.33.10" # 省略 end end
2台目の仮想マシンを追加するときは、もう一つconfig.vm.define
ブロックを作り、そこに定義します。
Vagrant.configure(2) do |config| # 1台目 config.vm.define "default" do |v| v.vm.box = "bento/ubuntu-16.04" v.vm.network "private_network", ip: "192.168.33.10" # 省略 end # 2台目 config.vm.define "db" do |v| v.vm.box = "bento/ubuntu-16.04" v.vm.network "private_network", ip: "192.168.33.11" # 省略 end end
起動方法他
各マシンを個別に起動させることができるようになりました。マシン名を省略すると、すべての仮想マシンが起動します。
$ vagrant up [<マシン名>]
$ vagrant up db
SSH接続ではマシン名の指定が必須です。
$ vagrant ssh <マシン名>
$ vagrant ssh db