Bare-metal Installation

Dependencies

When we have installed the expected software components, now we have to install the main components of the Fogify System. Since Fogify is developed with python, firstly, we install the python libraries with the following command (on each Cluster Node):


sudo pip3 install -r requirements.txt

Fogify Controller (Master)

The Fogify Controller should run on the Cluster’s Manager Node. The Controller will receive any request and will communicate to the other nodes (Fogify Agents) in order to disseminate the appropriate commands.


 python3  main.py --controller

Fogify Agent

Monitoring

For our initial version of Fogify, we utilize an external monitoring agent to endorse our monitoring metrics, namely the cAdvisor. Thus, when the Swarm Cluster is up and running, the user should deploy the cAdvisor on each Cluster’s Node. The following command deploys a cAdvisor agent that exposes the monitoring metrics to the 9090 port.


#!/usr/bin/env bash
sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=9090:8080 \
  --detach=true \
  --name=cadvisor \
  google/cadvisor:latest

Agent’s Installation

A Fogify Agent should run on each Swarm Node in order to apply the specific network characteristics, retrieve the monitoring data and employ the stress actions. The agent should run with “sudo” because the network actions need admins privileges.


sudo python3  main.py --agent