Использование NFS с vagrant не работает
В моем файле Vagrantfile есть следующее:
config.vm.network :private_network, ip: "10.0.0.103"
config.vm.synced_folder ".", "/vagrant/", type: "nfs"
Выполнение vagrant up
на свежем ящике дает:
==> default: Mounting NFS shared folders...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mount -o 'vers=3,udp' 10.0.0.1:'/Users/wayne/app' /vagrant
Stdout from the command:
Stderr from the command:
stdin: is not a tty
mount.nfs: access denied by server while mounting 10.0.0.1:/Users/wayne/app
Затем мне нужно vagrant reload
, и это, кажется, работает... Но, конечно же, я не должен был этого делать?
[обновлено: вывод журнала]
INFO retryable: Retryable exception raised: #<Vagrant::Errors::LinuxNFSMountFailed: The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mount -o 'vers=3,udp' 10.0.0.1:'/Users/wayne/sonatribe' /vagrant
Stdout from the command:
Stderr from the command:
stdin: is not a tty
mount.nfs: requested NFS version or transport protocol is not supported
>
INFO ssh: Execute: mount -o 'vers=3,udp' 10.0.0.1:'/Users/wayne/sonatribe' /vagrant (sudo=true)
INFO retryable: Retryable exception raised: #<Vagrant::Errors::LinuxNFSMountFailed: The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mount -o 'vers=3,udp' 10.0.0.1:'/Users/wayne/sonatribe' /vagrant
Stdout from the command:
Stderr from the command:
stdin: is not a tty
mount.nfs: requested NFS version or transport protocol is not supported
3 ответа:
Для Linux я делаю это на хост-машине:
systemctl stop nfs-kernel-server.service systemctl disable nfs-kernel-server.service systemctl enable nfs-kernel-server.service systemctl start nfs-kernel-server.service
Понижение и изменение базового образа на LTS Ubuntu (в отличие от XUbuntu), казалось, исправили это.
Это может произойти из-за несоответствия версий host VirtualBox и Guest Additions. В этом случае непосредственно перед строкой ошибки в журнале загрузки вы должны получить:
==> default: Checking for guest additions in VM... default: The guest additions on this VM do not match the installed version of default: VirtualBox! In most cases this is fine, but in rare cases it can default: prevent things such as shared folders from working properly. If you see default: shared folder errors, please make sure the guest additions within the default: virtual machine match the version of VirtualBox you have installed on default: your host and reload your VM. default: default: Guest Additions Version: 5.0.26 default: VirtualBox Version: 5.1
В моем случае обновление VirtualBox до последней версии исправило проблему.
Кроме того, вы можете убедиться, что установлена правильная гостевая версия дополнения с помощью плагина vbguest Vagrant на вашем хост-компьютере:
vagrant plugin install vagrant-vbguest