Bringing up a vagrant machine is as easy as vagrant up.
If you’re a web developer, it would be nice if it were to add the private network IP address to /etc/hosts of the host machine. Thus giving you instant access to http://my-awesome-site.dev/
This doesn’t happen by default, but it is possible with the use of a plugin. The one I like to use is vagrant-hostsupdater.
Install thus:
vagrant plugin install vagrant-hostsupdater
When you bring up the vagrant machine, it will now automatically add the VM’s name to /etc/hosts.
As /etc/hosts is owned by root (and I hope you aren’t running everything as root), you have to provide sudo access to edit /etc/hosts.
Either you manually enter your sudo password every time you run vagrant up, or you can add some rules to sudoers.
This will work on Ubuntu type systems. Paths to sh and sed may be different on your own system.
Copy/paste the following into /etc/sudoers.d/vagrant and chmod the file to 0440
# vagrant-hostsupdater plugin Cmnd_Alias VAGRANT_HOSTS_ADD = /bin/sh -c echo "*" >> /etc/hosts Cmnd_Alias VAGRANT_HOSTS_REMOVE = /bin/sed -i -e /*/ d /etc/hosts %sudo ALL=(root) NOPASSWD: VAGRANT_HOSTS_ADD, VAGRANT_HOSTS_REMOVE
A similar system can be used if you want to make use of nfs for the file sharing with the VM.
Again, this works for Ubuntu systems, you mileage may vary.
Copy/paste the following into /etc/sudoers.d/vagrant and chmod the file to 0440
# nfs mounting in vagrant Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports Cmnd_Alias VAGRANT_EXPORTS_COPY = /bin/cp /tmp/exports /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 /tmp/exports %sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE, VAGRANT_EXPORTS_COPY
You will now be able to use nfs without having to enter your sudo password on each vagrant up and vagrant halt.