Usage

Installation

Install munet using pip:

$ pip install munet

Or if you need the latest changes from master:

$ pip install git+https://github.com/LabNConsulting/munet.git#egg=munet

Configuring sudo -E

sudo/root is required for most uses of munet and mutest; however, when you install munet as a non-root user (typical) either in your default environment or in a virtual environment, it may not be found when you sudo.

First you should always run with sudo -E which carries the user environment over into the new process running as root. However, it is also common for sudo to be configured to override the user’s $PATH even when the -E flag is specified. To make sure this isn’t the case you should disable the Default secure_path configuration if present. One way to do that is:

$ sudo sed -i -e '/secure_path/s/^/#/' /etc/sudoers

Running

Launching the topology:

$ sudo -E munet
$ sudo -E munet -c otherconf.yaml

For a list of option use the --help arg.

$ sudo -E munet --help

usage: () [-h] [-c CONFIG] [-C] [-k KINDS_CONFIG] [--gdb GDB] [--gdb-breakpoints GDB_BREAKPOINTS] [--host] [--log-config LOG_CONFIG] [--no-kill] [--no-cli] [--no-wait] [-d RUNDIR] [--validate-only] [--topology-only] [-v] [-V] [--shell SHELL] [--stdout STDOUT] [--stderr STDERR] [--pcap PCAP]

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        config file (yaml, toml, json, ...)
  -C, --cleanup         Remove the entire rundir (not just node subdirs) prior to running.
  -k KINDS_CONFIG, --kinds-config KINDS_CONFIG
                        kinds config file (yaml, toml, json, ...)
  --gdb GDB             comma-sep list of hosts to run gdb on
  --gdb-breakpoints GDB_BREAKPOINTS
                        comma-sep list of breakpoints to set
  --host                no isolation for top namespace, bridges exposed to default namespace
  --log-config LOG_CONFIG
                        logging config file (yaml, toml, json, ...)
  --no-kill             Do not kill previous running processes
  --no-cli              Do not run the interactive CLI
  --no-wait             Exit after commands
  -d RUNDIR, --rundir RUNDIR
                        runtime directory for tempfiles, logs, etc
  --validate-only       Validate the config against the schema definition
  --topology-only       Do not run any node commands
  -v, --verbose         be verbose
  -V, --version         print the verison number and exit
  --shell SHELL         comma-sep list of nodes to open shells for
  --stdout STDOUT       comma-sep list of nodes to open windows on their stdout
  --stderr STDERR       comma-sep list of nodes to open windows on their stderr
  --pcap PCAP           comma-sep list of network to open network captures on