If you are using NFS with Vagrant you are probably tired of password prompts. But a few modifications to
/etc/sudoers file can help you!
/etc/sudoers file always use
visudo. This way you won’t save the file with errors and you don’t damage your system.
$ sudo visudo
And input the following for Fedora:
# Allow Vagrant to manage /etc/exports Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports Cmnd_Alias VAGRANT_NFSD_CHECK = /usr/bin/systemctl status nfs-server.service Cmnd_Alias VAGRANT_NFSD_START = /usr/bin/systemctl start nfs-server.service Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /bin/sed -r -e * d -ibak /etc/exports %vagrant ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE
How does that work? Vagrant runs the above mentioned commands to edit the
/etc/exports file so we just let it to do so without asking for
root permissions. To know the right commands you need to scan the Vagrant source code, but there is also a
/contrib folder in the Vagrant repository that tries to gather information such as this one (the above snipped is taken from there). Note that this snipped allows the password-less NFS for
vagrant group. You can change the group to the one you like or add yourself to this group with
sudo usermod -a -G vagrant USERNAME.
If you still need to set up NFS, read my previous post on setting NFS on Fedora.
← IT'S OUT NOW
I wrote a complete guide on web application deployment. Ruby with Puma, Python with Gunicorn, NGINX, PostgreSQL, Redis, networking, processes, systemd, backups, and all your usual suspects.