Vagrant のバージョン 1.8 から新しく「Snapshot機能」が追加されましたので、本稿で述べるプラグインは最新版の Vagrant を利用していれば不要になりました。 詳しくは別稿「VagrantのSnapshot機能で仮想マシンの状態を保存/復元しよう」をご覧ください。
前回は Vagrant sahara の概要とインストール手順について説明しました。 今回は sahara を使って機能を理解してみましょう。
連載:Vagrant sahara で行う状態管理
- 前編:概要とインストール
- 後編:使ってみよう!
使ってみよう! (rollback)
まずは、仮想マシーンに行った設定をロールバックする方法を、コマンドを示してから解説したいと思います。
# sandboxモード開始 (復元ポイントの作成)
$ vagrant sandbox on
# 仮想マシーンの起動
$ vagrant up
# 起動した仮想マシーンにログインして空ファイルを作成します
# ここでは空ファイルを作成して、何らかの設定をした事とします
$ touch sample.txt
# 仮想マシーンを停止
$ vagrant halt
# ロールバック
$ vagrant sandbox rollback
# sandboxモード終了
$ vagrant sandbox off
# 仮想マシーンを起動
$ vagrant up
# 起動した仮想マシーンにログインして、
# 先ほど作成した sample.txt がない事を確認して下さい
$ ls -l sample.txt
vagrant sandbox on コマンドで sandbox モードを開始します。 ここが後の rollback の復元ポイントになります。 このコマンドは仮想マシーンを起動した後でも良いようですが、仮想サーバーを停止している時に行った方が早く処理できます。
vagrant up で仮想マシーンを起動し、今回は空ファイルを作成したことで仮想マシーンの状態を変更した事とし、vagrant halt で仮想マシーンを終了します。
今回は空ファイルを作ったことを”失敗”と考え、vagrant sandbox rollback で仮想マシーンの状態をもとに戻します。 このコマンドも仮想マシーンを停止してから行った方が良いです。 vagrant sandbox off コマンドで sandbox モードを終了し実験を終了とします。
最後に仮想マシーンを起動して、仮想マシーンの状態が元に戻ったことを確認します。 元通りに戻ったことが確認できましたでしょうか。
使ってみよう! (commit)
もし変更に問題なくて、それで良いのであれば状態を確定します。 vagrant sandbox commit コマンドで確定できます。 操作例は次のような感じです。
# sandboxモード開始 (復元ポイントの作成)
$ vagrant sandbox on
# 仮想マシーンの起動
$ vagrant up
# ここで何かしらの状態変更を行います
# 仮想マシーンを停止
$ vagrant halt
# 状態を確定(commit)
$ vagrant sandbox commit
# sandboxモード終了
$ vagrant sandbox off
おわりに
以上で sahara プラグインの説明は終わりです。 sahara プラグインの便利さが伝わりましたでしょうか? これで失敗に怯えずに実験的な操作ができるようになりましたね。