Drowsy Dog's Diary

any note, any thought

2013年6月5日
by kazoo
1 Comment

Vagrant

Vagrant を触ってみたメモー。(語尾キャラ)
最初は 入門Chef Solo – Infrastructure as Code[kindle版]を読みつつ Chef についてメモ書きをしながら一緒に書くつもりだったのだけど、かなり長くなってきたので先に Vagrant だけ分けることにしました。
とはいえ naoya さんの紹介以上の情報は無いですが。。

Vagrant

ローカル環境に簡単に仮装サーバを構築・削除できるツール。rubygems として提供されている。(Oracle Virtualbox が別途必要)
サーバ自動設定・更新ツールである Chef と直接関係は無いが、ちょっとしたレシピの実験に VM を立てて実験するのに非常に有用で、Chef との連携もよく意識して作られている。

環境

  • Mac OSX 10.7.5
  • vagrant: 1.0.7
  • ruby: 1.9.3-p392 (rbenv)

インストール

まず Virtualbox を普通に DL & インストールしましょう。
その後 vagrant をインストール。

Vagrant はあらかじめ用意された OS イメージの雛形(Box)を利用して VM を構築します。
http://www.vagrantbox.es/ に、大量の box が用意されています。

ここでは Chef-solo 入門に倣って、CentOS-6.3 の Box を利用します。よ。

add できたら仮装サーバの起動。適当なディレクトリを作って、そこで vagrant init

init によって、Vagrantfile という設定ファイルがそのディレクトリに作られます。
ネットワーク設定や Chef レシピの設定、また複数の Box があるときに元になる Box を指定したりします。

そして vagrant up で起動。

たったこれだけでローカルにまっさらな仮想サーバ環境が立ち上がります。すげえ。

デフォルトでは、上記の場合
~/VirtualBox VMs/mybox_xxxxxxxx
といった場所に仮想イメージができる模様です。

で、VM にログイン。vagrant ユーザは sudoers なので、sudo yum install などして自由に構成できます。

で、VM の停止。

で、VM の削除となります。
2回目以降は add や init は必要なく、作って実験して壊して…が極めて簡単にできるようになります。

Sahara

さらに、sahara というライブラリを使うことで、EC2 のスナップショットを取るように、ある時点の仮装サーバの状態を記録・ロールバックということができます。

いずれも動くには動いたのですが、うちの環境では $ vagrant sandbox commit/off にものすごい時間がかかってしまっていまいちでした。MacbookAir ではシンドイのだろうか。
その前にいったん $ vagrant halt して、VM を停止させてから実行すればよい、という情報もありましたが、そうするとせっかくのお手軽さが失われてしまうような気も。
まあ今のところは仮装サーバの立ち上げと破棄がさくさくできるだけで十分かなと。

Chef については次の記事で。

参考:
http://www.ryuzee.com/contents/blog/4292