先に Vagrant の使いどころ・考えどころ を見ると良いかもです。
先に列挙します。 Vagrant 1.6.5 時点で入れたやつなので、すぐに変わる可能性ありです。
https://github.com/chef/vagrant-omnibus
box ファイルを起動する際に、Chef が入っていなかったらインストールしてくれるプラグインです。 以下のように指定しておけば常に最新版を入れてくれます。
Vagrant.configure("2") do |config|
# ------------------------------ #
# plugin settings
# see: vagrant plugin list
# ------------------------------ #
# 中略
if defined? config.omnibus
config.omnibus.chef_version = :latest
end
# 中略
end
ちなみに、Vagrant のプラグインのインストールは vagrant のサブコマンドから出来ます。
vagrant plugin install --help
https://github.com/dotless-de/vagrant-vbguest
VirtualBox + Vagrant で使っているので、仮想 OS は VirtualBox が用意してくれているわけですが、 VirtualBox での利用をより便利にするために、GuestAddition をインストールします。
Guest Additions 自体の説明は、以下のページが分かりやすいかもしれません。
ただ、この Guest Additions と VirtualBox 自体のバージョンに差異があったりすると、 vagrant up がうまくいかないケースが出てきます。 Guest Additions が予め入った box ファイルでも、 VirtualBox 自体のバージョンを上げた際にうまく合わずにエラーが出るケースがあるので、 その辺の調整を行ってくれるプラグインを導入しました。
Vagrant.configure("2") do |config|
# ------------------------------ #
# plugin settings
# see: vagrant plugin list
# ------------------------------ #
# 中略
unless defined? config.vbguest
require "vagrant-vbguest"
end
config.vbguest.auto_update = true
# 中略
end
これを入れる前はその辺の細かなバージョンの差異に悩まされることが多かったのですが、 導入後は意識しないくらいスムーズになりました。感謝しています。
https://github.com/jedi4ever/sahara
過去に Vagrant に仮想マシンのスナップショットがとれる sahara というプラグインを入れた で書いてたのですが、未だに使ってます。
Vagrant の使いどころ・考えどころ でも書いたのですが、Vagrantfile にレシピを書かない方針で進めているので、初回の vagrant up は、仮想マシンの起動と最低限の設定のみになっているはずです。
その段階で一度スナップショットを取る癖をつけておくと、いつでもクリーンな状態にすぐ戻せるのでレシピを書くのがはかどります。
vagrant sandbox on [vm_machine_name]
正直なところ、この辺りは時間が出来たらちょっと見直したいところなのですが、 今のままでも全然問題なく使えています。 (欲を言えば、他の VM からも設定なしで名前解決できるようにしたい・・・)
https://github.com/mattes/vagrant-dnsmasq
landrush というプラグインも、以下の記事を読んで試してみたのですがなかなか便利でした。
vagrant up すると .dev ローカルドメインを設定してくれる Landrush が便利な話
開発用の名前解決なので、名前の解決さえできればそれほど望むことは多くなく、 hosts ファイルを直接編集してくれる vagrant-hostsupdater でも事足りるかもしれません。
Vagrant Manager という、GUI で Vagrant の状態管理ができるツールがあるので、試しに使ってみています。 近い将来、GUI だけで使うとどうなるか?みたいなところで上手く使えたらいいなと思っています。
この記事は書かれてから1年以上が経過しており、最新の情報とは異なる可能性があります