誰のための文書?
リーダーや同僚から「Vagrant, Chef を使うと環境構築楽ちんだから、これこれのファイル用意して vagrant up してみなー」と言われるがままに環境構築してみたはいいが、何なのかよくわかっていない人。
Vagrant, Chef と組み合わせて VirtualBox を使っているのに VirtualBox のGUI から起動や終了をしている人。
コマンドラインで構築するやり方はたくさん見たが、それぞれのツールの役割がわかっていない人。
2週間前の自分。
概要
図にまとめてみました
ちょっと解説
1, 2ヶ月前に同僚から Vagrant と Chef を使うと便利なことを教わったのですが、中身についてはよくわかっていませんでした。この1週間、Vagrant と Chef と格闘してみて、理解したことをまとめたのが上図です。
Vagrant は Provisioner と Provider を組み合わせて、Provider 上で動作する環境を簡単に構築することができるツールで、Provisioner には Chef や Puppet、Provider には VirtualBox や Amazon EC2 などを選択することができます。
両者を「コントロールする」のが Vagrant なので、基本的には vagrant コマンドで VM の構築や起動をするのが自然だと思います。VirtualBox の GUI から VM を起動することもできますが、そうすると Chef が実行されないので注意しましょう。
Vagrant は VM の追加等を外から管理できるので、sahara 等のプラグインを使うことで、VM の Snapshot を取って、昔の状態に簡単に戻したりすることができます。