前回に引き続きVagrantで仮想環境。
今回は、複数の開発環境を仮想環境として立ち上げるために、設定ファイルを書き換える。
今までは、一つの仮想環境を立ち上げると、IPアドレスやその他設定が被るので、同時に起動することはできなかった。
そこで、設定を書き換える。
今までは、だいたい下記のように記述されていた。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "chef/centos-6.5" config.vm.network "private_network", ip: "192.168.33.10" config.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--memory", "1024"] end config.omnibus.chef_version = :latest config.vm.provision "chef_solo" do |chef| chef.cookbooks_path = "./site-cookbooks" chef.add_recipe "http" chef.add_recipe "mysql" chef.add_recipe "php" chef.json = { http:{ docRoot: "/vagrant/" } } end end
これを、一段掘ってあげる。
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define :gomocool do|myconfig| myconfig.vm.box = "chef/centos-6.5" myconfig.vm.network "private_network", ip: "192.168.33.11" myconfig.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--memory", "1024"] end myconfig.omnibus.chef_version = :latest myconfig.vm.provision "chef_solo" do |chef| chef.cookbooks_path = "./site-cookbooks" chef.add_recipe "http" chef.add_recipe "mysql" chef.add_recipe "php" chef.json = { http:{ docRoot: "/vagrant/" } } end end end
重要な点は、2行目の部分と、4行目の部分と22行目の閉じるend。
設定の定義をgomocoolと名前をつけて、IPアドレスを変えてあげる。
これで、例えば、
gomocoolという名前で192.168.33.11を設定し、
xaclityという名前で192.168.33.12で設定し、
立ち上げれば、同じPC上に複数の仮想環境が立ち上がったままになる。
下記は vagrant global-status で管理されている環境の状態を見た場合。
従来とは違い、defaultとなっていた名前が、設定ファイルでの名前になる。
これで、同時にブラウザでアクセスして見比べながら開発などできるようになる。
ちなみに、なんだか上手くいかないと思ったら、vagrant reload –provision で、もう一度立ち上げ直すとうまくいく場合が多い。
ちなみに、複数立ち上げの場合のSSHのポート番号は、立ち上げの順番だったりで変わるっぽいので、vagrant ssh コマンドで確認する。
以上。
この回で、だいたいのVagrant環境は整ったと思う。