Skip to content

ntlinh16/cloudal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

369 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Currently support:

cloudal /ˈklaʊdəl/, an experiment management tool, is one of the contributions of the RainbowFS project. It is created with the mission to simplify the management of designing and running a full factorial experiment on a cloud system automatically.

cloudal provides 3 main modules: provisioner, configurator and experimenter. You can use provisioner to provision nodes on a specific cloud system by simply describing your requirements in a YAML file. Moreover, by calling our ready-to-use configurators you can easily install and configure some software or services on these provisioned nodes. After configuring the environment, you can use the experimenter module to perform an experiment workflow automatically from creating and controlling each run to collecting the results.

By using these 3 modules as Lego blocks, you can assemble them to write a script that describes all steps to perform a cloud experimental scenario.

Read the doc for more technical detail.


Getting started

cloudal should be painless to work with. Just pick the appropriate module with the right arguments and move along 😉

from cloudal.provisioner import g5k_provisioner 
from cloudal.configurator import docker_configurator, packages_configurator


provisioner = g5k_provisioner(config_file_path="/path/to/configuring/file.yaml")
provisioner.provisioning() # provisioning hosts on Grid5000 base on requirement in a configuring file.
hosts = provisioner.hosts

configurator = packages_configurator()
configurator.install_packages(['sysstat', 'htop'], hosts) # install sysstat and htop on all hosts

configurator = docker_configurator(hosts)
configurator.config_docker() # install and start Docker engine on all hosts

To write your own script to perform your custom actions such as provisioning, configuring or experimenting, you could use the provided templates and follow the detail explanation in templates.

You can also try some examples in the tutorials section.

Installation

The following are steps to install cloudal. If you want to test it without affecting your system, you may want to run it in a virtual environment. If you're unfamiliar with Python virtual environments, check out the user guide.

  1. Clone the repository.
git clone https://github.com/ntlinh16/cloudal.git
  1. Activate your virtualenv (optional), and then install the requirements.
cd cloudal
pip install -U -r requirements.txt
  1. In other to run execo, we need to install taktuk
apt-get install taktuk
  1. Set the PYTHONPATH to the directory of cloudal.
export PYTHONPATH=$PYTHONPATH:/path/to/your/cloudal

You can add the above line to your .bashrc to have the env variable set on new shell session.

  1. Set up the SSH configuration for execo:

If you want to specify the SSH key to use with cloudal, you have to modify the execo configuration file.

In ~/.execo.conf.py, put these lines:

default_connection_params = {
    'user': '<username_to_connect_to_nodes_inside_cloud_system>',
    'keyfile': '<your_private_ssh_key_path>',
    }

for example:

default_connection_params = {
    'user': 'root',
    'keyfile': '~/.ssh/cloudal_key/id_rsa',
    }

Execo reads ~/.execo.conf.py file to set up the connection. If this file is not exist, execo uses the default values that you can find more detail here

To working on specific cloudal systems, you need more installation. Please find the detail instruction in the following links:

Tutorials

I provide here some quick tutorials on how to perform an action with cloudal.

Provisioning

Configuring

Experimenting

About

A tool aims to design and perform experiments on different cloud systems 🌨️ ⛅ 🌩️ 🌧️ 🌤️

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages