Emulation capability for Industrial Control Systems
View the Project on GitHub sandialabs/sceptre-docs
minimega is a tool that launches and manages virtual machines across one or more compute nodes.
After following the installation guide, minimega should be installed and running on the headnode. Using the deploy api, minimega can copy itself to the compute nodes in the cluster, launch itself, and discover the other cluster members to form a mesh.
NOTE: The
deployapi requires password-less root SSH logins for each node.
sudo minimega -e deploy launch node[1-3]
The deploy command copies the current minimega binary to the compute nodes you specify using scp, then launches them with ssh using the same set of command line flags as the minimega instance that’s running on the headnode. After a minute or so, the other instances of minimega should have located each other and created a communications mesh. You can check the status like this:
root$ minimega -e mesh status
host | mesh size | degree | peers | context | port
headnode | 4 | 10 | 3 | sceptre | 11235
root$ minimega -e mesh list
headnode: headnode
|--node1
|--node2
|--node3
node1
|--headnode
|--node2
|--node3
node2
|--headnode
|--node1
|--node3
node3
|--headnode
|--node1
|--node2
The mesh status command shows general information about the communications mesh, including “mesh size”, the number of nodes in the mesh. For this example, because it shows a mesh size of 4, we know our entire 4-node cluster is in the mesh.
The mesh list command lists each mesh node and the nodes to which it is connected.
minimega is an open-source and well-documented project. For additional documentation, please see the official minimega documentation: