notebook

都内でWEB系エンジニアやってます。

vagrantでsandbox

sandbox機能

saharaをインストールする事でVMの状態を任意の状態に戻したりできるようになります。(スナップショット的な) VMだから失敗したら作り直せばいい、とはいっても色々作業して失敗したら面倒なので便利ですね。 さっそくやってみます

saharaのインストール

vagrant plugin install sahara これだけ、らくチン

  • sandbox有効化 vagrant sandbox on

  • 変更の確定 vagrant sandbox commit

エラーが出た。。

VBoxManage.exe: error: Snapshot operation failed
VBoxManage.exe: error: Code E_FAIL (0x80004005) - Unspecified error (extended info not available)
VBoxManage.exe: error: Context: "int __cdecl handleSnapshot(struct HandlerArg *)" at line 431 of file VBoxManage.cpp

ググッたらVirtualBoxのバージョンとsaharaのバージョンが合わないと上記エラーが出る模様

|VirtualBox|4.2.18| |sahara|0.0.16|

各バージョンは上記だった。ちょうどVirtualBoxの最新版( 4.3.6 )の告知があったのでインストールして再挑戦

$ vagrant up
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.

Guest Additions Version: 4.2.16
VirtualBox Version: 4.3

...今度は上記警告が出た

VBのguest additionsとVBのバージョンが違うよって言われてるようです

一応これは無視してもsandbox自体は使えるようだけどせっかくなので調べます

調べたらいろんな人が同じ内容の記事を書いていた

vbguestプラグインをインストールしてアップデートすればいいとのこと

なので早速インストールします

GuestAdditionsのアップデート

vagrant plugin install vagrant-vbguest
vagrant vbguest

GuestAdditionsをアップデートしました

確かめてみましょう

$ vagrant vbguest --status
Got different reports about installed GuestAdditions version:
Virtualbox on your host claims:   4.2.16
VBoxService inside the vm claims: 4.3.6
Going on, assuming VBoxService is correct...
GuestAdditions 4.3.6 running --- OK.

あら、、、

ちょっと怪しかったのでreloadしました

一応確認

$ vagrant reload
$ vagrant vbguest --status
GuestAdditions 4.3.6 running --- OK.

立ち上げ時も警告が出なくなりました。やっとひと段落。。。

現在(2014-01-30)下記環境で動かしてます

|VirtualBox|4.3.6| |Vagrant|1.3.5| |sahara|0.0.16|

やっと本題のsandbox

ターミナルつないで適当にファイル作ってみます

  • ファイルの作成
$ touch sandbox.txt
$ ls
sandbox.txt
  • 変更の確定 vagrant sandbox commit

ここで変更が確定されたのでこの後rollbackしたら現時点の状態まで戻す事ができます

  • 変更
$ touch sandbox2.txt
$ ls
sandbox.txt sandbox2.txt
$ ls
sandbox.txt

便利!!

サーバ設定関連の実験とかで色々試したい場合とかにすごく便利、実際にMySQLレプリケーションをするための設定を色々試してみたけどすごく楽に作業が出来ました。