vagrant-guest-plugin-ruby-template
This repo is a template for building a Ruby Vagrant guest plugin. Follow the steps to setup your own guest plugin!
- Copy this repo. Its a template so follow the Github instructions to create a repo from a template using the UI, or use the github cli.
$ gh repo create vagrant-guest-myspecialguest --template hashicorp/vagrant-guest-plugin-ruby-template --public
Update the gemspec
-
Update the gemspec. Choose a good, descriptive name for your project. Rename
my-vagrant-guest-plugin-ruby-template.gemspec
to reflect this, and fill out the required information. -
Rename all the references of
my-vagrant-guest-plugin-ruby-template.gemspec
to your new name.
Update the module
-
Rename
vagrant-guest.rb
to match the name of your plugin and update the contents of the file. This includes updating the module nameMyVagrantGuestPlugin
, the name and description fields and theguest(:myguestplugin) do
line. -
Rename all the references of
MyVagrantGuestPlugin
to your new name. -
Update the guest detection method in
lib/guest/guest.rb
. This method will be run by Vagrant to determine if the guest is running the OS assumed by the plugin.
Add capabilities
- Add any new capabilities the plugin needs to the
guest/cap
module. Be sure to register the capabilities.
Build and install your gem
- Commit all your changes if you haven't already.
$ git add -A
$ git commit -m "My Vagrant guest plugin"
- Build your plugin
$ gem build my-vagrant-guest-plugin-ruby-template.gemspec
Successfully built RubyGem
Name: my-vagrant-guest-plugin
Version: 0.0.1
File: my-vagrant-guest-plugin-0.0.1.gem
- (optional) Push your gem to RubyGems
$ gem push my-vagrant-guest-plugin-0.0.1.gem
- Install your plugin
# Install from the locally built gem
$ vagrant plugin install my-vagrant-guest-plugin-0.0.1.gem
# If you pushed the gem to RubyGems, install from RubyGems
$ vagrant plugin install my-vagrant-guest-plugin