Experimental MONROE as a package (MaaP). This is currently the Monroe DEV branch.
The rationale behind this repo/package is to allow monroe (with minimal dependencys) to be installed on a fresh Debian installation.
- clone this repo
- cd monroe-experiment-core
- ./build.sh core
apt install apt-transport-https curl
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
3.1 Install monroe-experiment-core from apt-repo (default)
- Add apt repo
- Debian :
echo 'deb [trusted=yes] https://raw.githubusercontent.com/MONROE-PROJECT/apt-repo/master stretch main' > /etc/apt/sources.list.d/monroe.list
- Ubuntu :
echo 'deb [arch=amd64, trusted=yes] https://raw.githubusercontent.com/MONROE-PROJECT/apt-repo/master bionic main' > /etc/apt/sources.list.d/monroe.list
- Debian :
apt update && apt monroe-experiment-core
- Get circle and table-allocator-* deb packages (build or get from a running monroe node)
- Install requirements :
apt install ./circle_1.1.2-deb8u3_all.deb ./table-allocator-client_0.1.2-deb8u-20170831x1107-65b66b_amd64.deb ./table-allocator-server_0.1.2-deb8u-20170831x1107-65b66b_amd64.deb jq ssh libuv1 libjson-c3 libjq1 libonig4 dnsutils
- Install monroe:
- Debian :
apt install ./monroe-experiment-core_*-deb8_amd64.deb
- Ubuntu :
apt install ./monroe-experiment-core_*-1ubuntu1_amd64.deb
- Debian :
Needed if want to schedule (ie run/control) experiments from a external station. For a publically available node the API key needs to be changed!
apt install monroe-tap-agent
4.2 Install TAP/Rest API scheduler from source
- See: TAP Agent README
- create a test.conf in /experimenst/user/
- execute
container-deploy.sh test
# check so all files/mounts has happened - execute
container-start.sh test
# check if some output was produced - execute
monroe-sync-experiments
# check so a container.log was produced and that files are synched - execute
container-stop.sh test
# checks so the .stopped file was produced - execute
monroe-sync-experiments
# check that all files are synched and that the experiement is cleanued up.
- See what is requried to make it install on Ubuntu 18.04 LTS (do we depend on ifupdown anywhere in the code)
- Remove/rework dependency on circle and table-allocator (ie make optional or remove binary components)
- Create a full plugin system with hooks into the main scripts (container-deploy/start/stop)
- Re-integerate current functionality as plugins (vm and neat support)
- Rework the experiment state checking code (ie stopped/running/deployed etc) to make it more robust