1つのBoxを利用して複数のVMを立ち上げる
少し前にやろうとして、エラーが出て立ち上がらない、という状態で止まっていたので再挑戦。
参考にしたサイト
Vagrantをつかって仮想マシンを管理する - momoto.github.io
エラー内容
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... There are errors in the configuration of this machine. Please fix the following errors and try again: vm: * A box must be specified.
原因
単純に定義を記載する場所を間違えていた。コメントアウト文が多すぎてend
がファイル末尾に書いてあることに気付かなかったのが原因。Vagrant.configure
〜end
文の重複のためのエラー。あほすぎる・・・。
Vagrantfile内のVagrant.configure(VAGRANTFILE_API_VERSION) do |config|
〜
end
の間に定義を記載すればOK。
# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # All Vagrant configuration is done here. The most common configuration # options are documented and commented below. For a complete reference, # please see the online documentation at vagrantup.com. # Every Vagrant virtual environment requires a box to build off of. # config.vm.box = "centos64" config.vm.define :web do |web| web.vm.box = "centos64" web.vm.network :private_network, ip: "192.168.33.10" end config.vm.define :app do |app| app.vm.box = "centos64" app.vm.network :private_network, ip: "192.168.33.11" end config.vm.define :db do |db| db.vm.box = "centos64" db.vm.network :private_network, ip: "192.168.33.12" end (省略) end
vagrant up
すると、web・app・dbの3台のVMが立ち上がる。便利だ。
$ vagrant up Bringing machine 'web' up with 'virtualbox' provider... Bringing machine 'app' up with 'virtualbox' provider... Bringing machine 'db' up with 'virtualbox' provider... (省略)
Vagrantfileで定義したVMを指定してvagrant ssh
すれば、指定したVMが立ち上がる。
$ vagrant ssh web Welcome to your Vagrant-built virtual machine. [vagrant@localhost ~]$ logout Connection to 127.0.0.1 closed. $ vagrant ssh db Welcome to your Vagrant-built virtual machine.