よく使うvagrant plugin

最近書けてなかったので、メモがてら、よく使っているVagrantのpluginをいくつか紹介します。

sahara

GitHub - jedi4ever/sahara: a plugin for vagrant that allows you manage a sandbox state

vagrantのboxの状態を保存して、必要に応じて巻き戻したりできるようにするpluginです。
chef試したりしてるときにけっこう便利です。

# install
$ vagrant plugin install sahara

# sandbox modeをonに
$ vagrant sandbox on

# boxの状態を保存
$ vagrant sandbox commit

# 最後に保存した状態に巻き戻す
$ vagrant sandbox rollback

$ vagrant sandbox off

vagrant-global-status

http://www.ryuzee.com/contents/blog/6752

こちらの記事に詳しいです。いろんな案件でいくつも環境を作っているとどのプロジェクトに対応したboxが起動してるかを一発で把握するのがなかなか面倒になってきます。

そこでこれ。Vagrantfileの置かれたpathとそのVagrantfileで定義されたvmのstatusが一覧できるのですごく便利です。

$ vagrant plugin install vagrant-global-status
$ vagrant global-status -a

vagrant-protect

http://www.ryuzee.com/contents/blog/6788

最後がこちら。ryuzeeさんのblogを追ってれば使えるvagrant pluginはだいたいキャッチアップできるのでは、と思ってたりします。

VirtualBoxのみ対応らしいですが、設定するとうっかりvagrant destroyを防止できます。
僕はローカルに環境作るときはchef使って構築する癖を付けてて、だいたいまっさらなところからコマンド2つ3つでアプリ動かせるようにしてるのですが、それでも1からbuildするの時間かかるし、必要な仮想マシン消しちゃうとグッとくるものがあるので、最近は使うようにしています。

$ vagrant plugin install vagrant-protect

# Vagrantfile
...
    config.protect.enabled = true
...

まとめ

普段使ってるpluginをメモ代わりに紹介させてもらいました。
いつもすごい助かってます。

興味あってぼくもvagrant-configspecというpluginを書いてみたりもしたので、興味ある方はどうぞ。(実用的というよりは興味本位です)

vagrant-configspecを使ってプロビジョニングする - KAYAC engineers' blog