Vagrantで仮想マシンを作るには、ディレクトリーを掘って、vagrant initをして設定ファイルのサンプルを作って、その設定を書き換えてvagrant upといった一連の作業を行います。数台であればこれの繰り返しでいいのですが、ディレクトリーの移動が面倒ですよね。
同じように考えている人は多いようで、検索したところ方法を書いてくれている人がいました。
- http://weblabo.oscasierra.net/vagrant-malti-machine/
- http://qiita.com/sho7650/items/cf5a586713f0aec86dc0
通常、一つの仮想マシンを制御するためのVagrantファイルには次のような記述が羅列してありますが、
config.vm.box = "precise" config.vm.hostname = "precise" config.vm.network "public_network", bridge: 'en0: Ethernet'
複数の仮想マシンを制御するためのVagrantファイルには次のように記述するようです。パラメータの冒頭がconfigでないところがポイントです。
VAGRANTFILE_API_VERSION = "2" ← 追記 Vagrant.configure(2) do |config| config.vm.define :node1 do |node1| node1.vm.box = "precise" node1.vm.hostname = "node1" node1.vm.network "public_network", bridge: 'en0: Ethernet' end config.vm.define :node2 do |node2| node2.vm.box = "precise" node2.vm.hostname = "node2" node2.vm.network "public_network", bridge: 'en0: Ethernet' end (以下略)
「vm名.vm.設定値 ="設定"」のようなルールでつらつらと書いていけばいいようです。上記の例では2つの仮想マシンが作られ、各仮想マシンにhostnemeで指定したホスト名が設定され、3行目の設定でブリッジアダプターが割り当てられます。同じように設定を追記すれば、それぞれの仮想マシンをカスタマイズして希望通りの仮想マシンを自動的に作成できます。便利ですね。
さらに次のようにaptコマンドを仕込めば、任意のパッケージインストール済みの環境も簡単に作ることができます。
config.vm.define :node1 do |node1| node1.vm.box = "precise" node1.vm.hostname = "node1" node1.vm.network "public_network", bridge: 'en0: Ethernet' node1.vm.provision :shell, inline:<<-EOS sudo apt-get update sudo apt-get install -y apache2 EOS end