minimega 2.7 release notes¶
Introduction¶
The minimega team is pleased to announce the release of minimega 2.7. This release includes several new features and bug fixes as well as updates to support the latest dependency packages. This release introduces igor web, a web UI similar to miniweb that allows easy use of the igor command-line tool. This release also includes the addition of the minibuilder UI to the miniweb front-end allowing rapid configuration and deployment of virtual machines and a suite of training modules that cover nearly every tool in the minimega suite, which can be found on minimega.org/training.
What's New?¶
Major Changes and Milestones¶
minibuilder: A UI for minimega¶
minibuilder allows the user to quickly and easily design and configure VM networks using a web interface built into miniweb.
PR #1429
mini101: Training course for minimega¶
This PR represents a full course series on using minimega, comprised of 15 modules that cover nearly every aspect of using minimega and its various tools.
Training course modules can be found at Mini101 training.
PR #1404.
igorweb: A web interface to igor¶
igorweb allows users to create/modify/delete igor reservations using a
friendly web interface. It has all of the functionality of igor in a shiny
package.
igorweb is its own package separate from igor and issues commands to igor.
So, igor works without igorweb, but igorweb can't work without igor.
PR #1371.
Upgraded dependency packages¶
minimega now runs with Go 1.12+. Older versions of Go are no longer
supported. Upgrades to
jQuery(3.1.1 -> 3.4.1)dataTables(1.10.12 -> 1.10.20)bootstrap(3.3.5 -> 4.3.1)
Docker File for minimega¶
Dockerfile to build a minimega docker image docker-compose script to run a minimega docker container using the image README with details
PR #1428
vncdrone: Improved VNC automation¶
Support for phases of execution and better name matching. Allows the user to specify various workloads and randomize work depending on stage (login stage, work stage, logout) For example, you can have a drone
- login
- randomly pick vnc files to do work
- log out
PR #1406.
Additional New Features¶
minimega: Specify flush targets¶
This PR Changes 'all' VM flush method to 'FlushAll()'.
- Created new 'Flush()' method that uses the 'Apply' method to flush a specified
target.
- Updated help strings to reflect enhancement.
- Backwards compatible with old vm flush behavior
PR #1392.
minimega: use "actual path" from qemu-img for backing image if present¶
If you run qemu-img info in the same directory as the image you're passing to it then the (actual path: ...) item isn't included in the output. However, if you run qemu-img info from a different directory, or you pass the absolute path of the image to qemu-img info, then the (actual path: ...) item is present. minimega always passes the full path of a disk image to qemu-img info.
PR #1437.
minimega: package python bindings¶
Packaging the minimega python bindings would allow users to easily install them into their python environments with pip.
PR #1415.
minimega: create minimega group in deb package and use it in init script¶
This allows users to run minimega commands without needing to be root by creating a "minimega" group. All users that are part of the "minimega" group can execute commands.
This is achieved by running the following after starting minimega:
chgrp -R minimega $MM_RUN_PATH
chmod -R g=u $MM_RUN_PATH
chmod g+s $MM_RUN_PATH ${MM_RUN_PATH}/minimega
in the systemctl script or by minimega on startup.
PR #1414.
minimega: vm net add¶
Adding vm net add command which allows the user to hotplug a nic to a kvm, and
specify some attributes - bridge, vlan, mac, and driver
- Does not work for containers
- Does not include the remove feature
PR #1363.
igor: Specify VLAN for a reservation¶
Allows users to specify which VLAN they'd like a reservation to connect to.
-vlancan be specified for sub and edit
PR #1369.
igor: Pause activity¶
Adds the ability to pause igor activity. When igor is paused, attempts to
sub, show, del, or other commands will fail and display a configurable
message. igorweb will display the same message.
PR #1403.
igor: Enhanced logging¶
Logging now include all relevant reservation information
igor: extend clarification¶
Clarifying logs for extend when duration exceeds limits. Before, the message indicated that the user request more time than specified in their command because we were adding it to the time remaining in their reservation. Now, we specify that the requested time, plus the time remaining, is what exceeds the limit.
PR #1432
Bug Fixes¶
minimega¶
Fixed issue adding virtual network interfaces to newer Ubuntu distribution¶
containers.
On newer distros, ip link add actually respects the iface name
given within the container netns, whereas it didn't before and just gave the
vethX as expected.
PR #1378.
Fixed error checking on 'vm config net' when only using containers¶
Throws warning instead of an error when running just with containers (no
installation of kvm/qemu)
PR #1380.
Fixed vm name check for rtunnel¶
Fixes issue with reverse tunnel error by changing when the name check for a VM occurs.
PR #1384.
QOS Update¶
Clarification for qos help and fixed an issue with burst computation where setting rate to kbits would result in a 0 burst value, causing an error in TC.
PR #1381.
minimega.namespace_cli: don't use loopback addresses for GRE tunnels¶
This prohibits loopback addresses from being used as endpoints in bridges in cliNamespaceBridge in minimega.namespace_cli.go.
PR #1419.
igor¶
Don't uninstall / clear network settings when deleting future reservation¶
Fixes an issue where deleting future reservations clobbers network settings for active reservations.
PR #1391.
Allow uninstall/clear for expired reservations¶
Fixes an issue where the network is not cleared when a reservation expires.
PR #1401.
Fix for the igor stats test to avoid issues with Daylight Savings Time¶
The stats test was failing (twice a year, it would seem) due to time changes affecting test outcome.
PR #1405.
miniweb¶
Forcing the href update before reload as the order of operations is¶
otherwise not guaranteed.
PR #1364.
misc¶
ldd.go¶
ubuntu 16.04 gives different output for ldd from ubuntu 18.04 this quick change makes it so you can build containers on 16.04
PR #1426.
Update so git treats build artifacts of uminirouter as ignored.¶
Changed perms on build.bash files from 664 to 775 so users don't get a git modified flag upon changing it themselves.
PR #1417.
Availability¶
minimega is available in several ways, both as pre-built distributions and source. See the installing guide guide for more information.
Debian package¶
minimega is available as an x86-64 debian package, available here. It is known to work in debian 9 (stretch) and ubuntu 16.04. It is known not to work on debian 10 (buster).
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.12+ compiler and libpcap headers.