Vagrantで2つのOSを実装する方法


まずはVagrantfileに記述しているコードをみてください。

VAGRANTFILE_API_VERSION = “2”

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = “centos65”

config.vm.define :test1 do | test1 |
test1.vm.hostname = “test1”
test1.vm.network :private_network, ip: “192.168.33.10”
end

config.vm.define :test2 do | test2 |
test2.vm.hostname = “test2”
test2.vm.network :private_network, ip: “192.168.33.20”
end

config.vm.provider :virtualbox do |vb|
vb.customize [“modifyvm”, :id, “–memory”, “1024”]
vb.customize [“modifyvm”, :id, “–cpus”, 1]
end
end

まず1行目にVAGRANTFILE_API_VERSIONを定義しなければいけないらしい。
この記述を怠るとvagrantがupしてくれない。

[ad#co-1]

次に、通常ならconfig.vm.boxのあとにconfig.vm.providerを記述するが、その前に定義したいvagrantを設定する。

config.vm.define :test1 do | test1 |
test1.vm.hostname = “test1”
test1.vm.network :private_network, ip: “192.168.33.10”
end

test1は見てのとおり、どんな名前でも大丈夫です。
そのvagrantに名前をつける感じです。

private_networkのipはなんでもかまいません。
実際にnginxやtomcatなどを入れた際に、そのipをを打てば接続できます。

vagrantに2つのOSを入れる設定は以上になります。
vb.customizeの部分はそのOSにかける制限などの設定になります。
また、今回立ち上げた2つのOS両方に適用されます。

vagrantの立ち上げ方ですが、単純に

vagrant up

とすれば、2つとも立ち上がってしまいメモリの無駄遣いになります。
(両方立ち上げる必要があればどうぞ。)

その際は、以下のように指定してあげてください

vagrant up test1

sshやhaltの際も同じです。