Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Vagrant Libvirt | 2,235 | 19 | 1 | 8 days ago | 77 | June 24, 2023 | 100 | mit | Ruby | |
Vagrant provider for libvirt. | ||||||||||
Vagrant Projects | 881 | 2 months ago | 6 | upl-1.0 | Shell | |||||
Vagrant projects for Oracle products and other examples | ||||||||||
Gluster Kubernetes | 770 | 4 years ago | 165 | apache-2.0 | Shell | |||||
GlusterFS Native Storage Service for Kubernetes | ||||||||||
Sahara | 722 | 61 | 7 | 4 years ago | 14 | June 18, 2014 | 14 | Ruby | ||
a plugin for vagrant that allows you manage a sandbox state | ||||||||||
Robox | 573 | 15 hours ago | 43 | Shell | ||||||
The tools needed to robotically create/configure/provision a large number of operating systems, for a variety of hypervisors, using packer. | ||||||||||
Packer Templates | 404 | 13 days ago | 8 | apache-2.0 | Shell | |||||
Scripts and Templates used for generating Vagrant images | ||||||||||
Vagrant Kvm | 372 | 9 years ago | 8 | September 15, 2014 | 16 | mit | Ruby | |||
This project is dead, please use vagrant-libvirt instead! A Vagrant 1.4+ plugin that adds a KVM provider to Vagrant, allowing Vagrant to control and provision KVM/QEMU VM. | ||||||||||
Netlab | 317 | 1 | a day ago | 44 | December 03, 2023 | 13 | other | Python | ||
Making virtual networking labs suck less | ||||||||||
Windows Vagrant | 313 | 4 days ago | 6 | mit | PowerShell | |||||
Windows 11/2022 Base Vagrant Box (https://app.vagrantup.com/rgl) | ||||||||||
Oh My Vagrant | 299 | 6 years ago | 12 | other | Ruby | |||||
An easy to manipulate development environment for using vagrant with puppet, docker and more! |
This is a Vagrant plugin that adds a Libvirt provider to Vagrant, allowing Vagrant to control and provision machines via Libvirt toolkit.
Note: Actual version is still a development one. Feedback is welcome and can help a lot :-)
Vagrant-libvirt Documentation is published at https://vagrant-libvirt.github.io/vagrant-libvirt/
We periodically test basic functionality for vagrant-libvirt on various distributions.
In the status badges below, build passing means that latest version of Vagrant + Vagrant-libvirt was installed correctly and vagrant up
is working. Click the badge to review the action workflow.
Installation typically involves a number of distribution package dependencies to ensure that Libvirt is available. Recommend that you follow the installation guide.
If you want to try out the very latest development version you can download the gem package from the GitHub rubygems package repository under the asserts. Unfortunately it's not yet possible to make the rubygem repositories in GitHub public.
To install provide the file directly to the install command:
vagrant plugin install ./vagrant-libvirt-<version>.gem
It is possible to install directly from the GitHub rubygems package repository, however this will embedded
your GitHub token directly into the file ~/.vagrant.d/plugins.json
:
vagrant plugin install vagrant-libvirt \
--plugin-source https://${USERNAME}:${GITHUB_TOKEN}@rubygems.pkg.github.com/vagrant-libvirt \
--plugin-version "0.10.9.pre.62"
Provided this token is a classic token limited to read:packages
only, this may be acceptable to you.
Once installed, use vagrant-libvirt through vagrant.
Locate a vagrant box containing the distribution you want to use at Vagrant Cloud and initialize.
vagrant init fedora/32-cloud-base
Then run following command:
vagrant up --provider=libvirt
Vagrant needs to know that we want to use Libvirt and not default VirtualBox.
That's why there is --provider=libvirt
option specified. Other way to tell
Vagrant to use Libvirt provider is to setup environment variable
export VAGRANT_DEFAULT_PROVIDER=libvirt
Afterwards to enter the VM simply use:
vagrant ssh
If you can't find a box that works as you need, have a look at our documentation on creating boxes on how to take existing ones, customize them and repackage.
To work on the vagrant-libvirt
plugin, clone this repository out, and use
Bundler to get the dependencies:
git clone https://github.com/vagrant-libvirt/vagrant-libvirt.git
cd vagrant-libvirt
bundle config --local with development
bundle config --local path 'vendor/bundle'
bundle install
Once you have the dependencies, verify the unit tests pass with rspec
:
bundle exec rspec --fail-fast --color --format documentation
If those pass, you're ready to start developing the plugin.
Additionally if you wish to test against a specific version of vagrant you can control the version using the following before running the tests:
export VAGRANT_VERSION=v2.2.14
bundle update && bundle exec rspec --fail-fast --color --format documentation
To run the acceptance tests which involve bringing up VMs and exercising various functionality aspects run the following (warning, may have issues if distro ruby is newer than supported by vagrant):
bundle exec rspec --fail-fast --color --format documentation --tag acceptance
Note rvm is used by the maintainers to help provide an environment to test against multiple ruby versions that align with the ones used by vagrant for their embedded ruby depending on the release. You can see what version is used by looking at the current unit tests workflow. By default if you have rvm installed and enabled it this project looks to use ruby 3.1.2 and configures a separate gemset, both of which will be switched to each time you enter the project directory. It should be considered sufficient just to get any tests passing with your system ruby, and as long as you ensure that the option to allow maintainers can update your PR, we will fix up any issues with the remaining combinations.
You can test the plugin without installing it into your Vagrant environment by
just creating a Vagrantfile
in the top level of this directory (it is
gitignored) that uses it. You can add the following line to your Vagrantfile
while in development to ensure vagrant checks that the plugin is installed:
Vagrant.configure("2") do |config|
config.vagrant.plugins = "vagrant-libvirt"
end
Or add the following to the top of the file to ensure that any required plugins are installed globally:
REQUIRED_PLUGINS = %w(vagrant-libvirt)
exit unless REQUIRED_PLUGINS.all? do |plugin|
Vagrant.has_plugin?(plugin) || (
puts "The #{plugin} plugin is required. Please install it with:"
puts "$ vagrant plugin install #{plugin}"
false
)
end
Now you can use bundler to execute Vagrant:
bundle exec vagrant up --provider=libvirt
IMPORTANT NOTE: bundle is crucial. You need to use bundled Vagrant.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)For future work take a look at open issues.