初心者のための Vagrant, Chef, VirtualBox の関係

More than 5 years have passed since last update.


誰のための文書?

リーダーや同僚から「Vagrant, Chef を使うと環境構築楽ちんだから、これこれのファイル用意して vagrant up してみなー」と言われるがままに環境構築してみたはいいが、何なのかよくわかっていない人。

Vagrant, Chef と組み合わせて VirtualBox を使っているのに VirtualBox のGUI から起動や終了をしている人。

コマンドラインで構築するやり方はたくさん見たが、それぞれのツールの役割がわかっていない人。

2週間前の自分。


概要

図にまとめてみました

拡大して表示

Vagrant,Chef,VirtualBox.png

拡大して表示


ちょっと解説

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 を取って、昔の状態に簡単に戻したりすることができます。


詳しい解説

入門Chef Solo - Infrastructure as Code