minimega 2.1 release notes¶
Introduction¶
The minimega development team is pleased to announce the release of minimega 2.1. This release includes several bugfixes and tweaks to the 2.0 release, as well as substantive internal changes to pave the way for future development. Several new usability features have been added which should make the programmability and visibility of minimega environments much better.
What's new¶
Major changes and milestones¶
New web interface¶
The minimega web interface has been updated again; it now features a live diagram of the network layout and a more modern look. The new web interface also fixes several performance issues with the previous interface. Most notably the web interface now only loads VM screenshots for VMs that are currently displayed on the screen instead of attempting to render all VM screenshots on every pageload.
vm launch kvm and internal changes¶
In preparation for Linux container support, we have changed the way the
vm launch command works. It now expects the type of the VM to be launched;
currently, only KVM is supported. Where you would have previously run
vm launch 10 to launch 10 VMs, you should now use vm launch kvm 10 to
accomplish the same task.
Tab completion¶
Tab completion now works for minimega commands, not just filenames. As in bash, striking the TAB key after typing a sufficiently unique prefix will complete the command; if there are multiple possible completions, striking the TAB key again will show the possibilities.
Runtime test framework¶
To help squash bugs earlier, minimega has a new runtime test framework that
exercises some basic single-host functionality. There is a new tool, minitest,
that runs tests from the tests/ directory against a running minimega instance
and checks that the output (.got) matches the expected output (.want). This
tool is still in its infancy -- there are only a handful of tests and the
framework has limited ability to clean up after itself when things go wrong
(requiring the user to manually cleanup VMs or restart minimega). However, it
has proven useful to find bugs introduced during the changes to the internals.
We hope to improve upon this initial work in future releases to provide more
complete runtime testing for minimega developers.
Additional new features¶
vm config serial API¶
minimega now supports specifying the number of ISA serial and virtio serial
ports. Previous versions of minimega hardcoded one of these ports (1.0 use ISA
serial, 2.0 used virtio serial). The default is to have no serial ports
whatsoever. The vm config serial command lets you specify how many ports to
create.
See the vm config serial API for more information.
bridge tunnel API¶
The bridge API now supports VXLAN and GRE tunneling. This API must be
instrumented from both ends of two minimega instances.
See the bridge API for more information.
vm launch/start/stop/kill/tag range support¶
All of vm launch, vm start, vm stop, vm kill, and vm tag now support
range operations, such as:
Which will create foo1, foo2, ..., foo20 VMs.
rfbplay ffmpeg transcoding¶
The rfbplay tool now supports invoking ffmpeg for VNC framebuffer recordings
directly in addition to the built-in MJPEG webserver.
See the VNC record/replay article for more information.
bridge trunk multiple trunks¶
The bridge trunk API now supports adding more than one trunk port per bridge.
.record API¶
The .record API allows toggling if a command is recorded in the command
history or not.
See the .record API for more information.
MAC address generation¶
Automatically generated MAC addresses are now valid according to
standards.ieee.org/develop/regauth/oui/oui.txt. You may still
override the automatically generated MAC address with any you like using the
vm config net API.
Availability¶
minimega is available in several ways, both as pre-built distributions and source. See the installing guide for more information.
Debian package¶
minimega is available as an x86-64 debian package, available here. It is known to work in debian 7 (wheezy) and 8 (testing/jessie).
tarball¶
A pre-built, x86-64 distribution is available in a single distributable tarball
here.
It should be sufficient to simply unpack the tarball and run tools from the
bin/ directory directly. Most default paths in minimega, vmbetter, and other
tools are built to be used in this way (i.e. bin/minimega, which will then
look for the web directory in misc/web).
Building from source¶
Source of the entire distribution is available on github. Follow the directions for cloning or forking minimega on github.com. In order to build minimega, you will need a Go 1.3+ compiler, libreadline, and libpcap headers.