2014年8月14日木曜日

VagrantでAnsibleのPalybookを書くときに役に立つプラグイン

AnsibleのPlaybookを作成するとき「あーでもない、こーでもない」、「あー間違った!
はい!やり直し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