Vagrantで複数のVMを立ち上げてみる
とりあえず適当なディレクトリを作って移動する。
$ mkdir test $ cd test
VMを2つ立ち上げる
ChefのCentOS6.5で初期化する。
$ vagrant init chef/centos-6.5
Vagrantfileが作成される。
$ cat Vagrantfile
・・・ VAGRANTFILE_API_VERSION = "2" ・・・ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| ・・・ config.vm.box = "chef/centos-6.5" ・・・ end
このVagrantfileを下記のように修正する。
$ vi Vagrantfile
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "chef/centos-6.5" config.vm.define :web1 do |web| end config.vm.define :web2 do |web| end end
upで2つのVMが起動する。
$ vagrant up
VirtualBoxで2つのVMが起動しているのが確認できる。
sshでそれぞれに接続できる。
$ vagrant ssh web1 [vagrant@localhost ~]$
$ vagrant ssh web2 [vagrant@localhost ~]$
haltで終了する。
$ vagrant halt
ホスト名とIPアドレスを設定する
このままではどっちのVMなのか分かりにくいので、ホスト名を設定する。
あとIPアドレスも設定する。
$ vi Vagrantfile
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "chef/centos-6.5" config.vm.define :web1 do |web| web.vm.hostname = "web1" web.vm.network :private_network, ip: "192.168.33.11" end config.vm.define :web2 do |web| web.vm.hostname = "web2" web.vm.network :private_network, ip: "192.168.33.12" end end
起動する。
$ vagrant up
sshで接続すると、ホスト名が表示され、
IPアドレスが設定されているのが確認できる。
$ vagrant ssh web1 [vagrant@web1 ~]$ ifconfig ・・・ eth1 Link encap:Ethernet HWaddr 08:00:27:42:96:42 inet addr:192.168.33.11 Bcast:192.168.33.255 Mask:255.255.255.0 ・・・
$ vagrant ssh web2 [vagrant@web2 ~]$ ifconfig ・・・ eth1 Link encap:Ethernet HWaddr 08:00:27:09:FA:54 inet addr:192.168.33.12 Bcast:192.168.33.255 Mask:255.255.255.0 ・・・
[vagrant@web2 ~]$ ssh 192.168.33.11 ・・・ vagrant@192.168.33.11’s password:(パスワードはvagrant) ・・・ [vagrant@web1 ~]$