[Vagrant & VirtualBox] Vagrant: synced_folder を rsync で同期する

Version 1.5 から追加された新機能です。

% vagrant --version
Vagrant 1.6.2
% virtualbox --help
Oracle VM VirtualBox Manager 4.3.12
(C) 2005-2014 Oracle Corporation
All rights reserved.

Vagrantfile

Mac では rsync が標準で入っているので、下記のように rsync 設定を加えるだけで利用できます。

Vagrantfile
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "chef/centos-6.5"
  config.vm.provision :shell, :path => "provision.sh"
  config.vm.network :public_network, ip: "10.0.1.100", bridge: "en1: Wi-Fi (AirPort)"
  config.vm.synced_folder "../dist", "/var/www/html/", type: "rsync"
end

Mac では、他に NFS が利用できます。

Windows では SMB が使えるようになったんですね。

つかいかた

いつも通り vagrant up で起動します。
さらに vagrant rsync-auto すると、watch(同期)が始まります。

% vagrant rsync-auto
==> default: Doing an initial rsync...
==> default: Rsyncing folder: /Users/****/projects/foo/dist/ => /var/www/html
==> default: Watching: /Users/****/projects/foo/dist

rsync の走るタイミングと grunt タスクがあわない?

grunt と同時利用時にちょっと不便なところが。。。
ファイルを修正すると livereload が自動で行われましたが、修正が反映されておらず、手動リロードを再度かける必要があります。
このあたり詳しい方いましたらぜひ教えて下さい。