{"id":13994363,"url":"https://github.com/oldpatricka/vagrant-xhyve","last_synced_at":"2025-04-10T01:10:56.342Z","repository":{"id":56897238,"uuid":"55364974","full_name":"oldpatricka/vagrant-xhyve","owner":"oldpatricka","description":"An experimental xhyve/hyperkit provider for vagrant","archived":false,"fork":false,"pushed_at":"2020-03-01T01:05:28.000Z","size":19237,"stargazers_count":101,"open_issues_count":3,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-10T01:10:41.391Z","etag":null,"topics":["hyperkit","vagrant","xhyve"],"latest_commit_sha":null,"homepage":"","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/oldpatricka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-03T19:33:58.000Z","updated_at":"2024-02-09T00:35:42.000Z","dependencies_parsed_at":"2022-08-21T01:50:52.650Z","dependency_job_id":null,"html_url":"https://github.com/oldpatricka/vagrant-xhyve","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldpatricka%2Fvagrant-xhyve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldpatricka%2Fvagrant-xhyve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldpatricka%2Fvagrant-xhyve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldpatricka%2Fvagrant-xhyve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oldpatricka","download_url":"https://codeload.github.com/oldpatricka/vagrant-xhyve/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137886,"owners_count":21053775,"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":["hyperkit","vagrant","xhyve"],"created_at":"2024-08-09T14:02:49.973Z","updated_at":"2025-04-10T01:10:56.156Z","avatar_url":"https://github.com/oldpatricka.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# Vagrant xhyve Provider\n\n[![Gem Version](https://badge.fury.io/rb/vagrant-xhyve.svg)](https://badge.fury.io/rb/vagrant-xhyve)\n\nThis is a [Vagrant](http://www.vagrantup.com) plugin that adds an [xhyve](http://xhyve.org)\nprovider to Vagrant.\n\n## Features\n\n* Basic features work\n* Can work with Hyperkit fork of Xhyve\n* qcow image support\n\n## Limitations\n\nYou need to use sudo for most vagrant actions with the xhyve driver,\ndue to the entitlements needed for xhyve to run without sudo. More details\nin the [xhyve github issue](https://github.com/mist64/xhyve/issues/60).\n\n## Usage\n\nInstall using standard Vagrant plugin installation methods. After\ninstalling, `vagrant up` and specify the `xhyve` provider. An example is\nshown below.\n\n```\n$ vagrant plugin install vagrant-xhyve\n...\n$ sudo vagrant up --provider=xhyve\n...\n```\n\nOf course prior to doing this, you'll need to obtain an xhyve-compatible\nbox file for Vagrant.\n\n## Quick Start\n\nAfter installing the plugin (instructions above), you can try an xhyve ubuntu\nlinux example. This is similar to the example from the xhyve intro blog post.\n\n```\n$ mkdir xhyve-vagrant\n$ cd xhyve-vagrant\n$ vagrant init oldpatricka/ubuntu-14.04\n$ sudo vagrant up --provider xhyve\n...\n```\n\nThis will start an Ubuntu Linux instance. you can log in with:\n\n```\n$ sudo vagrant ssh\n```\n\n## Box Format\n\nThe vagrant-xhyve box format is pretty straightforward. See\nthe [example_box/ directory](https://github.com/oldpatricka/vagrant-xhyve/tree/master/example_box).\nThat directory also contains instructions on how to build a box.\n\n## Configuration\n\nThis provider exposes quite a few provider-specific configuration options:\n\n* `memory` - The amount of memory to give the VM. This can just be a simple\n  integer for memory in MB or you can use the suffixed style, eg. 2G for two\n  Gigabytes\n* `cpus` - The number of CPUs to give the VM\n* `xhyve_binary` - use a custom xhyve version\n* kernel_command - send a custom kernel boot command\n\nThese can be set like typical provider-specific configuration:\n\n```ruby\nVagrant.configure(\"2\") do |config|\n  # ... other stuff\n\n  config.vm.provider :xhyve do |xhyve|\n    xhyve.cpus = 2\n    xhyve.memory = \"1G\"\n    xhyve.xhyve_binary = \"/Applications/Docker.app/Contents/MacOS/com.docker.hyperkit\"\n    xhyve.kernel_command = \"root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap acpi=off console=ttyS0 LANG=en_GB.UTF-8\" # example for a CentOS installed in a LVM filesystem\n  end\nend\n```\n## Synced Folders\n\nThere is minimal support for synced folders. Upon `vagrant up`,\n`vagrant reload`, and `vagrant provision`, the XHYVE provider will use\n`rsync` (if available) to uni-directionally sync the folder to\nthe remote machine over SSH.\n\n## Using Docker's HyperKit Fork of Xhyve\n\nDocker has a very nice port of Xhyve called [HyperKit](https://github.com/docker/hyperkit). It has some interesting features like better stability and qcow support (which this provider can't use yet).\n\nIf you want to try it out, either install hyperkit directly, or you can use the version bundled with [Docker for Mac](https://docs.docker.com/engine/installation/mac/). The path to the binary is `/Applications/Docker.app/Contents/MacOS/com.docker.hyperkit`. See the configuration section above for how to use this with the `xhyve_binary` option.\n\n## Questions\n\nQ. Should I use this for my work?\n\nA. Do you want to keep your job? I'm not even sure you should use this for toy\nprojects.\n\nQ. Why?\n\nA. This project is powered by ignorance and good intentions.\n\nQ. Will I ever not have to use sudo or setuid root?\n\nA. There's a theory in that issue linked above that wrapping xhyve in an\napp store app would help. If that were the case, you could probably use the\nembedded binary with vagrant-xhyve. Another option is to use setuid root.\n\nQ. This sucks.\n\nA. That's not a question, but why don't you try out [another implementation](https://github.com/sirn/vagrant-xhyve). Looks pretty nice.\n\n## Acknowledgements\n\nThis plugin was heavilly cribbed from the vagrant-aws and vagrant-virtualbox\nproviders. So thanks for those.\n\nThis also uses the nice [xhyve-ruby](https://github.com/dalehamel/xhyve-ruby)\ngem, by Dale Hamel.\n\n## Development\n\nTo work on the `vagrant-xhyve` plugin, clone this repository out, and use\n[Bundler](http://gembundler.com) to get the dependencies:\n\n```\n$ bundle\n```\n\nOnce you have the dependencies, verify the unit tests pass with `rake`:\n\n```\n$ bundle exec rake\n```\n\nIf those pass, you're ready to start developing the plugin. You can test\nthe plugin without installing it into your Vagrant environment by just\ncreating a `Vagrantfile` in the top level of this directory (it is gitignored)\nand add the following line to your `Vagrantfile`\n```ruby\nVagrant.require_plugin \"vagrant-xhyve\"\n```\nUse bundler to execute Vagrant:\n```\n$ bundle exec vagrant up --provider=xhyve\n```\n\n## Contributors\n\n* Patrick Armstrong\n* Nuno Passaro\n* Guy Pascarella\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldpatricka%2Fvagrant-xhyve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foldpatricka%2Fvagrant-xhyve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldpatricka%2Fvagrant-xhyve/lists"}