blob: 0e18f49c889e92c792a1146d817fcbed9b699134 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
KVMX: vagrant-like QEMU KVM Wrapper
===================================
KVMX is a lightweight implementation of a virtual machine manager
inspired by [vagrant](https://www.vagrantup.com/),
[kvm-manager](https://git.fluxo.info/kvm-manager/about/) and
[bocker](https://github.com/p8952/bocker).
It may be used for development or as a wrapper for desktop GUI isolation.
This is simple stuff. Don't use it if you need any complex behavior
or integration. In the other hand, if you're looking for a small
application that doesn't depend on software installed from unstrusted
sources, you'll feel welcome here :)
## Dependencies
KVMX currently needs a Debian-based system and the following dependencies:
sudo apt install git qemu qemu-kvm virt-viewer spice-client spice-client-gtk
If you plan to create guest images, you may also want the following packages:
sudo apt install debootstrap grub-pc parted vmdebootstrap mbr libguestfs-tools
If you want Xpra and Xephyr support:
sudo apt install xpra xserver-xephyr
## Instalation
Simply clone it and add to your `$PATH`:
git clone https://git.fluxo.info/kvmx
You can also verify the latest commit's OpenPGP signature:
/usr/bin/git -C kvmx verify-commit HEAD
Note that `/usr/bin/git` is called to avoid any other `git` wrappers or aliases
you might have available on your shell.
## Basic usage
kvmx init [project-name] [project-folder] # initialize
kvmx edit [project-name] # optional customization
kvmx up [project-name] # bring it up!
If no project name is specified, the current folder name is assumed as the project name.
If no folder is specified, the current folder is assumed as the project home.
## Further development
* Fix isolinux support:
* http://www.syslinux.org/wiki/index.php?title=Development/Testing
* http://linux-kernel-driver.blogspot.com.br/2009/06/linux-kernel-development-using.html
* https://bbs.archlinux.org/viewtopic.php?id=177299
* Alternative folder sharing support (NFS, SMB or even [via SSH](https://superuser.com/questions/831659/mount-a-local-directory-to-a-remote-ssh-server)).
* Remount 9p shared folders and reinitialize spice-vdagent upon resume from disk [see possible bug](https://bugzilla.redhat.com/show_bug.cgi?id=1333072).
* [Nested virtualization](http://www.rdoxenham.com/?p=275) ([1](https://wiki.archlinux.org/index.php/KVM#Nested_virtualization), [2](https://ladipro.wordpress.com/2017/02/24/running-hyperv-in-kvm-guest/)).
* Integration with [image-bootstrap](https://github.com/hartwork/image-bootstrap).
* Systemd service.
* Shell completions.
* Docs (tutorial and manpage).
* Makefile and debian package.
* Fit into `kvm-manager` use case.
## References
See [Virtualized GUI environments](https://blog.fluxo.info/suckless/virtual) for details.
|