O Vagrant falha ao montar pastas compartilhadas NFS devido a /etc/exports corrompidos.Como faço para corrigir esse arquivo?
Pergunta
Recentemente tentei instalar uma VM com vagrant, mas "vagrant up" sempre falhava com o erro:
Falha na montagem de pastas compartilhadas NFS.Isso geralmente é causado pelo software cliente da NFS que não está sendo instalado na máquina de convidados.Verifique se o software do cliente NFS está instalado corretamente e consulte quaisquer recursos específicos para a distro Linux que você está usando para obter mais informações sobre como fazer isso.
O cliente NFS foi instalado corretamente em minha máquina, então procurei outras causas de erros e encontrei uma postagem no blog explicando que meu /etc/exports pode estar corrompido.Restaurei o exportsbak (que contém apenas exemplos comentados), esperando que o vagrant reconfigurasse aquele arquivo corretamente...mas isso não acontece e o erro ainda está lá.
Como posso forçar o vagrant a regenerar esse arquivo ou corrigi-lo?Obrigado.
Solução
Basta excluir o arquivo.
sudo rm -f /etc/exports
O arquivo será recriado durante o vagrant up
processo.
Outras dicas
Eu não fui capaz de obter NFS correndo no meu Ubuntu, porque eu usei os pacotes de vagabundo do APT (V 1.2.2)
Eu instalei a última versão Vagrant (1.5) daqui: http://www.vagantup.com/downloads . e NFS funcionou.
- Verifique se o servidor NSF não está instalado, você pode fazer…
dpkg -l | grep nfs-kernel-server
- Se não estiver instalado, instale os pacotes necessários…
apt-get install nfs-kernel-server
apt-get install nfs-common
service nfs-kernel-server restart
sudo service portmap restart
mkdir -p /var/exports
Em seguida, no Vagranfile, adicione a linha em #shared folders...
config.vm.synced_folder "www", "/var/www", :nfs => { :mount_options => "dmode=755","fmode=755"] }
Quando o vagrant estiver iniciando ele pedirá a senha do root, para executá-lo sem a senha do root você pode editar /etc/sudoers e adicionar as seguintes linhas…
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /bin/sed -r -e * d -ibak /etc/exports
%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE