こんにちわ。永野です。
インフラ構築を行う上でも欠かせなくなってきているVagrant
Ansibleのテストなどよく行うのですが、
何度何度も作り直すのは面倒くさいのでsahara pluginを導入して、
テスト後にスナップショットをRollBackして作業前に戻して何度もやっております。
試した環境
- Vagrant 1.8.1
- Sahara plugin 0.0.17
- VirtualBox バージョン 5.0.14 r105127
特にそれぞれのバージョンは正直意識していませんでしたが動作したので
それぞれがバージョンアップしてもいまのところ大丈夫かもしれませんね。
saharaのインストール
pluginの確認
saharaが導入されているかを確認します。
% vagrant plugin list vagrant-share (1.1.5, system)
saharaをインストール
% vagrant plugin install sahara Installing the 'sahara' plugin. This can take a few minutes... Installed the plugin 'sahara (0.0.17)'!
saharaのコマンド
それほど多くないところも良いですね。
よく間違うのが「vagrant sandbox」なのに「vagrant sahara」って入れてしまいます。
$ vagrant sandbox --help
Usage: vagrant sandbox <command> [<args>]
Available subcommands:
commit
off
on
rollback
status
pluginの導入確認
% vagrant plugin list sahara (0.0.17) vagrant-share (1.1.5, system)
saharaの使い方
saharaを有効化(on)
まずsaharaを有効化させます。
% vagrant sandbox on [default] Starting sandbox mode... 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
仮想VMの現時点のスナップショットを取得する。(commit)
これによりcommit時点での仮想VMのイメージが取得されます。
少し時間がかかります。
% vagrant sandbox commit [default] Committing the virtual machine... 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
仮想VMのcommitした時点まで戻す。(rollback)
これはcommitより時間はかかりません。
% vagrant sandbox rollback [default] Rolling back the virtual machine... 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
saharaが有効か無効かを確認する。(status)
onなら有効化されています。
offなら無効化です。
vagrant sandbox status [bar] Sandbox mode is on [foo] Sandbox mode is on
commitからrollbackまでのテスト
httpdをyumでインストールして、
rollbackしてそれをなかったことにする一連の流れです。
→ホスト側で行う。 % vagrant sandbox commit [default] Committing the virtual machine... 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% % vagrant ssh →仮想VM側で行う。 $ sudo rpm -qa | grep httpd $ sudo yum install -y httpd ※httpdインストールのログが流れます) 完了しました! $ sudo rpm -qa | grep httpd httpd-tools-2.2.15-47.el6.centos.3.x86_64 httpd-2.2.15-47.el6.centos.3.x86_64 $ exit →仮想VM側からexitする。 % vagrant sandbox rollback [default] Rolling back the virtual machine... 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% % vagrant ssh →仮想VM側で行う。 $ sudo rpm -qa | grep httpd ※表示されません。