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
</code>