Many developers use Vagrant to maintain development environments. Some may not realize that there is a Vagrant plugin architecture that can extended functionality. Plugins provide a wide range of functionality including, new commands, low level Vagrant interaction with action hooks, new providers to replace VirtualBox, and extended host and guest capabilities.
Below are a few plugins that I have found useful in day to day development:
- vagrant-hostsupdater
- Manages the host system
/etc/hosts
entires for host entries on a Vagrant VM.
- Manages the host system
- vagrant-ip-show
- Lists IPs for the Vagrant related VM network.
- vagrant-scp
- Copy files between the host system and a Vagrant VM.
- vagrant-shell-commander
- Execute shell commands on a Vagrant VM from a host system shell.
Interacting with Vagrant plugins is really straight forward. Below are the subcommands for vagrant plugin
. For example, you can install vagrant-ip-show
using the following command: vagrant plugin install vagrant-ip-show
install
- Install plugins
license
- Install license files for paid plugins
list
- List all installed plugins
uninstall
- Uninstall plugins
update
- Update plugins
Ruby and RubyGems are used for development and packaging of Vagrant Plugins. If you are interested in developing a Vagrant plugin, you can read more about that here. Packaging and distribution documentation can be found here.
There are plenty more Vagrant plugin offerings found at this frequently updated Available Vagrant Plugins Github Wiki page. I am not sure if this is an exhaustive list, but it seems pretty complete and is a great start to explore the Vagrant plugin world.