Vagrantでsandboxを利用する
Saharaはコマンドラインから仮想マシンの状態をsandboxモード(変更をいつでも巻き戻せる)に変更できるプラグインだ。これを使うことで、例えばchefのレシピ作成やミドルウェアのインストールの評価などがやりやすくなる。
http://www.ryuzee.com/contents/blog/4310
なんとすばらしい。
早速やらねば!
1.前提情報
- ホスト:Windows 7
- ゲスト:CentOS 6.4 x86_64 Minimal (VirtualBox Guest Additions 4.2.8, Chef 11.4.0, Puppet 3.1.0)
- ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
- Vagrant version 1.0.7
- VirtualBox バージョン 4.2.10 r84104
2.Saharaのインストール
以下のコマンドでインストールできます。
>vagrant gem install sahara
そうすると、利用可能なサブコマンドにsandboxが追加されます。
>vagrant Available subcommands: box destroy gem halt init package provision reload resume sandbox ssh ssh-config status suspend up
3.sandboxの利用
3.1.sandboxモードに入る
起動中のVagrantディレクトリ(「Vagrantfile」のある場所)に移動し、
>vagrant sandbox on [default] - Enabling sandbox 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
3.2.試しにPHPをインストールしてみる
>vagrant ssh Last login: Tue Apr 2 10:07:23 2013 from 10.0.2.2 Welcome to your Vagrant-built virtual machine. [vagrant@localhost ~]$ sudo yum install php [vagrant@localhost ~]$ php -v PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
5.3.3が入りました。
3.3.sandboxのロールバック
>vagrant sandbox rollback [default] - powering off machine 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% [default] - roll back machine 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% [default] - starting the machine again
4.その他の利用可能コマンド
- sandboxモードを終了する
>vagrant sandbox off [default] - switching sandbox off 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
コミットされていない修正はロールバックされます。
- sandboxに行った修正を確定する
>vagrant sandbox commit [default] - unwinding sandbox 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% [default] - fastforwarding sandbox 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
- unwinding
- 巻き戻し
- fastforwarding
- 早送り
巻き戻して、早送り・・・。うん?
- 現在sandboxモードかどうかを確認する
>vagrant sandbox status [default] - snapshot mode is on
「sandbox mode」ではない・・・ぼそっ。。。
5.まとめ
- sandboxを利用すれば気軽にいろいろ試すことができますね。
- 使い方もRDBMSと似ているので直感的に理解できました。