The minimega team is pleased to announce the release of minimega 2.5. This release includes various improvements and numerous bug fixes. This release contains changes to the existing API which will improve user experience and programmability.
miniccc and the cc server now synchronize with magic bytes ("RON") before their
handshake so that extra data from a previous connection can be flushed from
their buffers. This allows VMs to be shutdown/`vm`start`'d and reconnect to the
cc server. Because of the way minimega connects to the client, we only attempt
to reconnect after a
vm start. If the VM restarts (i.e. with the in-guest
restart mechanism), we currently do not detect this to attempt a reconnect.
This changes requires users to update the miniccc binaries in their VMs.
Extended miniccc to expose the guest filesystem to the host over the miniccc connection. This allows the filesystem to be mounted on the host or across the network on the head node.
The command and control article has been updated to show its use.
ns snapshot which calls
vm migrate on all VMs in the namespace and
writes a launch script to recreate those VMs from the migration files.
This capability has very limited testing.
read API now records the namespace that is active at the beginning of the
read command and prepends it to all commands. To allow read scripts to change
the namespace, the
read API inspects commands and updates the namespace
accordingly. This prevents issues where multiple read scripts run
simultaneously in different namespaces.
read API also reports the line number when there is a parse error.
-namespace flag to specify a namespace to use when running commands for
tap mirror API to create a mirror of a tap. This allows another VM to
inspect the traffic from an experiment. See the
article for an example.
log ring API which tracks the most recent log messages in an in-memory
ring buffer. The log ring can be created with an arbitrary size and can be
dumped by calling
log ring with no arguments.
vm config cores and
vm config machine APIs allowing users to specify
the number of cores and the machine type. The acceptable machine types, CPUs,
and network drivers are based on what the binary
vm config qemu reports.
Added support for
tar: prefix which fetches and untars tarballs via meshage.
Currently only untars if there is a single top-level directory. It untars to
the same directory that contains the tarball.
Added glob support to
Added support for running commands against multiple VMs in the same VNC
command with an API similar to
Added support for all
vm info fields for
cc filter such as:
cc filter name=server cc filter vlan=DMZ
-balloon flag from the default QEMU args.
Upgraded noVNC to v1.0.0.
Added several new articles:
Removed Vyatta article (deprecated API removed in v2.4).￼
Added support for namespaces to miniweb is several ways. First, users may now
force a namespace by starting miniweb with the
-namespace flag. Second, when
miniweb is not forced into a namespace, users may specify namespaces in the
URL. For example, http://localhost:9001/foo/vms will only show VMs in the "foo"
Added montage page to show VM screenshots with minimal wrappings.
sfdisk to fix issues with newer versions of
Improved show command.
Added sync command.
Added support for user-agent strings in HTTP requests and fix a reporting error with DNS hits/second.
vnc API no longer reports `vm not found errors` when there are multiple hosts
in the namespace and only one is running the target VM.
disk API so that it returns an error when the partition is not
specified and the disk has more than one partition.
localhost as value to
vm config coschedule.
Fix bug in
vm tag where tags for all VMs were being shown instead of just
those for the specified target.
Fix bug in
capture where some arguments caused an
Added Bro #1163.
Added minimal Ubuntu #1179.
minimega is available in several ways, both as pre-built distributions and source. See the installing guide for more information.
minimega is available as an x86-64 debian package, available here. It is known to work in debian 7 (wheezy) and 8 (testing/jessie) and ubuntu 16.04.
A pre-built, x86-64 distribution is available in a single distributable tarball
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
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.8+ compiler and libpcap headers.