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 minimega.org/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. `-vlan `can 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.