|
1 month ago | |
---|---|---|
src | 1 month ago | |
.gitignore | 1 month ago | |
Cargo.lock | 1 month ago | |
Cargo.toml | 1 month ago | |
LICENSE | 1 month ago | |
README.md | 1 month ago |
emu
contains commands to:
systemctl --user
)The non-systemd parts probably would work on a mac with few changes. Until then
this is linux-only. You will also need to be a part of your system's kvm
group.
Since emu is a really new project I'll keep this brief: do not depend on this software.
I don't really know what I'm trying to do with this software yet. Until then, perhaps you'll find it interesting or entertaining to play with.
Install rustup to get a cargo environment, and install it from source:
cargo install --git https://code.hollensbe.org/erikh/emu
Once installed, you can invoke the software with emu
.
$ emu create myvm 50 # gigabytes of storage
# start the vm with the cdrom set to the ubuntu iso. Press ^C to terminate the vm.
$ emu run myvm --cdrom ubuntu.iso
# make a copy before doing something dumb
$ emu clone myvm myvm.template
$ emu list
myvm
myvm.template
# supervision in systemd
$ emu supervise myvm
$ emu supervised
myvm
$ systemctl --user start myvm.emu # or enable it, if you'd like. it sticks to your login session.
$ systemctl --user stop myvm.emu # graceful shutdown
$ emu unsupervise myvm
$ emu remove myvm
$ emu list
myvm.template
Configuration is provided currently by injecting values into a file under
~/.local/share/emu/<VM>/config
. It has this format (but more values, RTFS):
[machine]
cpus = 4 # actually cores
memory = 512 # megabytes
[ports]
2222 = 22 # host -> guest map
You can control these values with emu config <subcommand>
sub-commands.
$ emu config show myvm
[machine]
cpus = 4
memory = 512
[ports]
2222 = 22
$ emu config port map myvm 2223 23
$ emu config port unmap myvm 2223
$ emu config set myvm cpus 8
Erik Hollensbe github@hollensbe.org