No description
Find a file
Taru Garg 26cddece43
Merge pull request #5 from hashicorp/compliance/update-headers
[IND-4227] [COMPLIANCE] Update Copyright Headers
2026-01-13 11:19:59 +05:30
.github/workflows Result of tsccr-helper -log-level=info -pin-all-workflows . 2023-09-18 06:10:52 +00:00
lib [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:26:05 +00:00
test/unit/guest [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:26:05 +00:00
.gitignore Setup Vagrant guest plugin template 2022-09-16 11:56:52 -04:00
CHANGELOG.md Setup Vagrant guest plugin template 2022-09-16 11:56:52 -04:00
Gemfile [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:26:05 +00:00
LICENSE [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:26:05 +00:00
my-vagrant-guest-plugin-ruby-template.gemspec Add instructions for using the template 2022-09-16 14:53:00 -04:00
Rakefile Setup Vagrant guest plugin template 2022-09-16 11:56:52 -04:00
README.md Add instructions for using the template 2022-09-16 14:53:00 -04:00
VERSION Setup Vagrant guest plugin template 2022-09-16 11:56:52 -04:00

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!

  1. 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

  1. 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.

  2. Rename all the references of my-vagrant-guest-plugin-ruby-template.gemspec to your new name.

Update the module

  1. Rename vagrant-guest.rb to match the name of your plugin and update the contents of the file. This includes updating the module name MyVagrantGuestPlugin, the name and description fields and the guest(:myguestplugin) do line.

  2. Rename all the references of MyVagrantGuestPlugin to your new name.

  3. 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

  1. Add any new capabilities the plugin needs to the guest/cap module. Be sure to register the capabilities.

Build and install your gem

  1. Commit all your changes if you haven't already.
$ git add -A
$ git commit -m "My Vagrant guest plugin"
  1. 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
  1. (optional) Push your gem to RubyGems
$ gem push my-vagrant-guest-plugin-0.0.1.gem
  1. 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