@naoya_itoさんの入門Chef Soloとともに、にわかに注目されだしたVagrantです。Vagrantの読み方は、ベイグラントらしいです。意味は、直訳すると浮浪者ですが、意味するとことは形容詞の「あちこちに動く」でしょうね。
元々は、Oracleの仮想化ソフトであるVirtualBoxを操作する為のツールです。それが何故Chefと関係あるのという話ですが、VagrantのPluginのSaharaがもつsandboxという超絶機能のお陰です。何とこれ、サーバの状態をcommit & rollback出来るのです。いわゆるRDBにおけるトランザクション機能です。Chefのレシピを書いたことがある人は解ると思いますが、レシピを書く作業は割と試行錯誤の連続です。元に戻せるように仮想イメージ化するとか、対象の部分を丸ごとコピーしておくとか方法はありますが、割と面倒くさいです。Sandbox機能で復旧も思いのままです。
Vagrantのインストール
Vagrantのインストールは簡単です。rubyとVirtualBoxがインストール済みであれば、以下のコマンドでインストールしてからCentOSのリポジトリをダウンロードして、セットアップまでしてくれます。(当然ながら、OSイメージのダウンロードは時間が掛かります。)
$ gem install vagrant $ vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.3-x86_64-v20130101.box $ vagrant init centos $ vagrant up
無事、立ち上がるとvagrantのsshコマンドでログインできます。
$ vagrant ssh
終了する場合は、hultです。
$ vagrant halt
また仮想イメージを削除する場合は、destroyです。
$ vagrant destroy
詳しくは、
Vagrant - naoyaのはてなダイアリー
Vagrantで簡単仮想マシン構築 | Ryuzee.com
Vagrantのsandbox機能
さて本題のsandbox機能です。実はこれは、Vagrantのデフォルトの機能ではなく、プラグインであるSaharaの機能なのです。Saharaのインストールは、次のとおりです。
$ vagrant gem install sahara
使い方は簡単で、
#トランザクション開始 $ vagrant sandbox on #トランザクション開始時にまで戻る $ vagrant sandbox rollback #変更を確定 $ vagrant sandbox commit #トランザクション終了 $ vagrant sandbox off
ちなみに夢のようなツールですが、commitにはそれなりの時間が掛かります。使い方のメインとしては、sandbox onとrollbackになると思います。
まとめ
という訳で、Sandbox機能のお陰でChef職人御用達になったVagrantです。最近、バージョンアップされて1.1になりました。VirtualBoxの他に、Amazon EC2やVMWare Fusionなどもサポートされるようになったようです。EC2サポートということで、俄然注目です。Saharaも中の人になった人が対応してたりで、どこまでサポートされているのか試してみたいですね。
そんなVagrantですが、書籍での情報は非常に少ないです。私が知っている限りでは、Software Designの2012年10月号くらいです。総集編に全部入っているので、今だとそちらを買うのが良いかもです。また、Vagrant+Chefの話は入門Chef Soloが一番解りやすいです。そして、Kindle端末が手元にあれば、試しながら参照出来るので便利です。と、あさましい話で終わらせて頂きます。
See Also:
手動でサーバの設定をすることを禁ずる。入門Chef Solo
運用視点でChef ServerかChef Solo + Knife Soloのどちらが良いか考えてみた
何故、fluentdなのか?
- 作者: 新原雅司
- 出版社/メーカー: 技術評論社
- 発売日: 2013/09/12
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
- 作者: Mitchell Hashimoto,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/02/21
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (9件) を見る