はい!やり直しorz」と何度も思いながら作成していましたが、こんな思いを軽減してくれる
Vagrantのプラグインがありました。
今まではやり直しとなったときはvagrant destroy→vagrant upしてました。
provisionのときにインストールするパッケージが多いとダウンロードだけでも結構な時間が必要でした。
vagrant-vbox-snapshot
Vagrantの仮想マシンのスナップショットをとるプラグインprovisionを実行した直後の状態を残しといてゴニョゴニョした後、丸ごとやり直したいとき
provisionで必要なパッケージを仮想マシンにインストールする時間とダウンロード時間を節約する
// プラグインインストールコマンド vagrant plugin install vagrant-vbox-snapshot # スナップショットの取得、SNAPSHOT_NAMEはスナップショットの一覧に表示する名前 # [vm-name]はVagrantfileで仮想マシンに名前を設定しているときに必要 vagrant snapshot take [vm-name] [SNAPSHOT_NAME] # スナップショットの一覧表示 vagrant snapshot list [vm-name] # 直前のスナップショットの復元 vagrant snapshot back [vm-name] # 任意のスナップショットを削除 vagrant snapshot delete [vm-name] [SNAPSHOT_NAME] # 任意のスナップショットの復元 vagrant snapshot go [vm-name] [SNAPSHOT_NAME]
sahara
仮想マシンでサンドボックスモードを有効にするプラグイン新しいバージョンでは利用できない情報とかあったので不安でしたが、実際はインストールできて利用できています。
インストールするデータベースの設定方法が間違ったとき、戻したいけどprovision直後までは
戻したくないとか、少し前の状態に戻したいときに有用です。
サンドボックスモードを有効後、仮想マシンにゴニョゴニョしてからコミットして確定すれば
その後加えた変更が間違ったときはロールバックすることでコミットしたタイミングに戻れます。
// プラグインインストールコマンド vagrant plugin install sahara # サンドボックスモードを有効 vagrant sandbox on [vm-name] # 現在の仮想マシンの状態をコミットする vagrant sandbox commit [vm-name] # コミットした状態に戻る vagrant sandbox rollback [vm-name] # サンドボックスモードを無効 # コミットしていなければ変更した状態は無かったことになる vagrant sandbox off [vm-name]環境
Vagrant 1.6.3
VirtualBox 4.3.12