{"id":13512321,"url":"https://github.com/vagrant-libvirt/vagrant-libvirt","last_synced_at":"2025-05-13T19:11:19.100Z","repository":{"id":7680074,"uuid":"9043012","full_name":"vagrant-libvirt/vagrant-libvirt","owner":"vagrant-libvirt","description":"Vagrant provider for libvirt.","archived":false,"fork":false,"pushed_at":"2024-08-17T21:15:02.000Z","size":4183,"stargazers_count":2346,"open_issues_count":134,"forks_count":509,"subscribers_count":72,"default_branch":"main","last_synced_at":"2025-04-25T18:22:24.770Z","etag":null,"topics":["libvirt","ruby","vagrant","vagrant-providers"],"latest_commit_sha":null,"homepage":"https://vagrant-libvirt.github.io/vagrant-libvirt/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vagrant-libvirt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-03-26T23:54:32.000Z","updated_at":"2025-04-21T14:29:21.000Z","dependencies_parsed_at":"2024-01-16T00:22:29.330Z","dependency_job_id":"9b9d77ad-2653-4ecf-98ee-15982f812386","html_url":"https://github.com/vagrant-libvirt/vagrant-libvirt","commit_stats":{"total_commits":1105,"total_committers":280,"mean_commits":"3.9464285714285716","dds":0.7638009049773755,"last_synced_commit":"a94ce0d7b6c90129a38435698ca97b364130313d"},"previous_names":[],"tags_count":70,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vagrant-libvirt%2Fvagrant-libvirt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vagrant-libvirt%2Fvagrant-libvirt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vagrant-libvirt%2Fvagrant-libvirt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vagrant-libvirt%2Fvagrant-libvirt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vagrant-libvirt","download_url":"https://codeload.github.com/vagrant-libvirt/vagrant-libvirt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250869914,"owners_count":21500405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["libvirt","ruby","vagrant","vagrant-providers"],"created_at":"2024-08-01T03:01:43.691Z","updated_at":"2025-04-25T18:22:43.798Z","avatar_url":"https://github.com/vagrant-libvirt.png","language":"Ruby","readme":"# Vagrant Libvirt Provider\n\n![Vagrant Libvirt Logo](docs/_assets/images/logo.png?raw=true \"Vagrant Libvirt\")\n\n[![Join the chat at https://gitter.im/vagrant-libvirt/vagrant-libvirt](https://badges.gitter.im/vagrant-libvirt/vagrant-libvirt.svg)](https://gitter.im/vagrant-libvirt/vagrant-libvirt?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://github.com/vagrant-libvirt/vagrant-libvirt/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/vagrant-libvirt/vagrant-libvirt/actions/workflows/unit-tests.yml)\n[![Coverage Status](https://coveralls.io/repos/github/vagrant-libvirt/vagrant-libvirt/badge.svg?branch=main)](https://coveralls.io/github/vagrant-libvirt/vagrant-libvirt?branch=main)\n[![Gem Version](https://badge.fury.io/rb/vagrant-libvirt.svg)](https://badge.fury.io/rb/vagrant-libvirt)\n\nThis is a [Vagrant](http://www.vagrantup.com) plugin that adds a\n[Libvirt](http://libvirt.org) provider to Vagrant, allowing Vagrant to\ncontrol and provision machines via Libvirt toolkit.\n\n**Note:** Actual version is still a development one. Feedback is welcome and\ncan help a lot :-)\n\nVagrant-libvirt Documentation is published at [https://vagrant-libvirt.github.io/vagrant-libvirt/](https://vagrant-libvirt.github.io/vagrant-libvirt/)\n\n## QA status\n\nWe periodically test basic functionality for vagrant-libvirt on various distributions.\nIn 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.\n\n[![](http://github-actions.40ants.com/vagrant-libvirt/vagrant-libvirt-qa/matrix.svg?only=Distribution%20Install.verify-install)](https://github.com/vagrant-libvirt/vagrant-libvirt-qa/actions/workflows/distro-install.yml)\n\n## Index\n\n\u003c!-- vim-markdown-toc GFM --\u003e\n\n* [Installing](#installing)\n  * [Latest development version](#latest-development-version)\n* [Running](#running)\n* [Development](#development)\n* [Contributing](#contributing)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n## Installing\n\nInstallation typically involves a number of distribution package dependencies to ensure that Libvirt is available.\nRecommend that you follow the [installation guide](https://vagrant-libvirt.github.io/vagrant-libvirt/installation.html).\n\n### Latest development version\n\nIf you want to try out the very latest development version you can download the gem package from the GitHub\nrubygems package [repository](https://github.com/vagrant-libvirt/vagrant-libvirt/packages/1659776) under the\nasserts. Unfortunately it's not yet possible to make the rubygem repositories in GitHub public.\n\nTo install provide the file directly to the install command:\n```\nvagrant plugin install ./vagrant-libvirt-\u003cversion\u003e.gem\n```\n\nIt is possible to install directly from the GitHub rubygems package repository, however this will embedded\nyour GitHub token directly into the file `~/.vagrant.d/plugins.json`:\n```\nvagrant plugin install vagrant-libvirt \\\n  --plugin-source https://${USERNAME}:${GITHUB_TOKEN}@rubygems.pkg.github.com/vagrant-libvirt \\\n  --plugin-version \"0.10.9.pre.62\"\n```\n\nProvided this token is a classic token limited to `read:packages` only, this may be acceptable to you.\n\n## Running\n\nOnce installed, use vagrant-libvirt through vagrant.\n\nLocate a vagrant box containing the distribution you want to use at\n[Vagrant Cloud](https://app.vagrantup.com/boxes/search?provider=libvirt) and\ninitialize.\n\n```shell\nvagrant init fedora/32-cloud-base\n```\n\nThen run following command:\n\n```shell\nvagrant up --provider=libvirt\n```\n\nVagrant needs to know that we want to use Libvirt and not default VirtualBox.\nThat's why there is `--provider=libvirt` option specified. Other way to tell\nVagrant to use Libvirt provider is to setup environment variable\n\n```shell\nexport VAGRANT_DEFAULT_PROVIDER=libvirt\n```\n\nAfterwards to enter the VM simply use:\n```shell\nvagrant ssh\n```\n\nIf you can't find a box that works as you need, have a look at our documentation\non [creating boxes](https://vagrant-libvirt.github.io/vagrant-libvirt/boxes.html#creating-boxes)\non how to take existing ones, customize them and repackage.\n\n## Development\n\nTo work on the `vagrant-libvirt` plugin, clone this repository out, and use\n[Bundler](http://gembundler.com) to get the dependencies:\n\n```shell\ngit clone https://github.com/vagrant-libvirt/vagrant-libvirt.git\ncd vagrant-libvirt\nbundle config --local with development\nbundle config --local path 'vendor/bundle'\nbundle install\n```\n\nOnce you have the dependencies, verify the unit tests pass with `rspec`:\n\n```shell\nbundle exec rspec --fail-fast --color --format documentation\n```\n\nIf those pass, you're ready to start developing the plugin.\n\nAdditionally if you wish to test against a specific version of vagrant you\ncan control the version using the following before running the tests:\n\n```shell\nexport VAGRANT_VERSION=v2.2.14\nbundle update \u0026\u0026 bundle exec rspec --fail-fast --color --format documentation\n```\n\nTo run the acceptance tests which involve bringing up VMs and exercising\nvarious functionality aspects run the following (warning, may have issues if\ndistro ruby is newer than supported by vagrant):\n```shell\nbundle exec rspec --fail-fast --color --format documentation --tag acceptance\n```\n\n**Note** rvm is used by the maintainers to help provide an environment to test\nagainst multiple ruby versions that align with the ones used by vagrant for\ntheir embedded ruby depending on the release. You can see what version is used\nby looking at the current [unit tests](.github/workflows/unit-tests.yml)\nworkflow. By default if you have rvm installed and enabled it this project looks\nto use ruby 3.1.2 and configures a separate gemset, both of which will be switched\nto each time you enter the project directory. It should be considered sufficient\njust to get any tests passing with your system ruby, and as long as you ensure\nthat the option to allow maintainers can update your PR, we will fix up any\nissues with the remaining combinations.\n\nYou can test the plugin without installing it into your Vagrant environment by\njust creating a `Vagrantfile` in the top level of this directory (it is\ngitignored) that uses it. You can add the following line to your Vagrantfile\nwhile in development to ensure vagrant checks that the plugin is installed:\n\n```ruby\nVagrant.configure(\"2\") do |config|\n  config.vagrant.plugins = \"vagrant-libvirt\"\nend\n```\nOr add the following to the top of the file to ensure that any required plugins\nare installed globally:\n```ruby\nREQUIRED_PLUGINS = %w(vagrant-libvirt)\nexit unless REQUIRED_PLUGINS.all? do |plugin|\n  Vagrant.has_plugin?(plugin) || (\n    puts \"The #{plugin} plugin is required. Please install it with:\"\n    puts \"$ vagrant plugin install #{plugin}\"\n    false\n  )\nend\n```\n\nNow you can use bundler to execute Vagrant:\n\n```shell\nbundle exec vagrant up --provider=libvirt\n```\n\n**IMPORTANT NOTE:** bundle is crucial. You need to use bundled Vagrant.\n\n## Contributing\n[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/vagrant-libvirt/vagrant-libvirt/issues)\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\nFor future work take a look at [open issues](https://github.com/vagrant-libvirt/vagrant-libvirt/issues?state=open).\n\n\u003c!--\n # styling for TOC\n vim: expandtab shiftwidth=2\n--\u003e\n","funding_links":[],"categories":["Ruby","vagrant","Virtualization"],"sub_categories":["Containers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvagrant-libvirt%2Fvagrant-libvirt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvagrant-libvirt%2Fvagrant-libvirt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvagrant-libvirt%2Fvagrant-libvirt/lists"}