Vagrant: NFS condicional para máquinas Mac / Linux

Por padrão, o vagrant usa o VirtualBox Guest Additions para compartilhar seu espaço de trabalho com a VM vagrant. Isso é bom para máquinas Windows, mas em hosts unixoid pode ser bem lento, é melhor usar o NFS aqui.

Infelizmente, o NFS não funciona fora da caixa em máquinas Windows reais. Se você estiver trabalhando em um ambiente de desenvolvimento híbrido com hosts Windows e Linux / Mac, ficará preso entre uma pedra e uma pedra.

A solução é usar o NFS apenas em máquinas que o suportem. O snippet de configuração do VagrantFile é semelhante a este:

if (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) == nil
# Use nfs
config
.vm.network :hostonly, "192.168.33.10"
config
.vm.share_folder("v-root", "/vagrant", ".", :nfs => true)
# This uses uid and gid of the user that started vagrant
config
.nfs.map_uid = Process.uid
config
.nfs.map_gid = Process.gid
end

Isso funciona para o vagrant 1.0.x, mas também deve funcionar em versões posteriores.