Each file in the experiment
directory runs Ansible code:
-
ansible.cfg
: tells Ansible where the roles directory is and specifies how to use SSH. -
cleanup.yml
: cleans up after the experiment (e.g., removing containers, deleting directories, etc.) -
experiment.yml
: bash-like syntax for running the benchmark. -
hosts.template
: specifies the layout of the cluster, like which services are on which nodes. -
site
: tells Ansible where to look for roles. For every system in your experiment (e.g., Hadoop, Swift, etc.), you must have asite.yml
file.
To add a new experiment, you must add a role
and an experiment
configuration.
-
Create a new Git repository for your experiments:
-
Copy the templates and sites for the systems you want to use:
cp -r srl-roles/hadoop/test <my_benchmark>/experiment1 cp srl-roles/swift/test/site/site.yml <my_benchmark>/experiment1/site/swift.yml
-
Edit your experiment and setup your group variables:
cd <my_benchmark>/experiment1 vim experiment.yml vim group_vars/all
A role is code that installs/deploys a system. To see an example, see the Swift role. If you look in a role directory, you will see two types of directories:
-
dockerfiles: Dockerfile code for building the image. Docker images have all the packages and environment variables needed to run the system.
-
all other directories: Ansible scripts (
*.yml
) that either deploy or build the system. These are used in thesite.yml
files you setup above.
EOF