elasticluster aims to provide a user-friendly command line tool to create, manage and setup computional clusters hosted on cloud infrastructures (like Amazon’s Elastic Compute Cloud EC2) or a private OpenStack cloud). Its main goal is to get your own private cluster up and running with just a few commands; a YouTube video demoes the basic features of elasticluster.
elasticluster is in active development, but the following features at the current state:
Simple configuration file to define cluster templates
Can start and manage multiple independent clusters at the same time
Grow a running cluster
elasticluster is currently in active development: please use the GitHub issue tracker to file enhancement requests and ideas
The architecture of elasticluster is quite simple: the configuration file in ~/.elasticluster/config defines a set of cluster configurations and information on how to access a specific cloud webservice (including access id and secret keys).
Using the command line (or, very soon, a simple API), you can start a cluster and override some of the default values, like the number of nodes you want to fire up. Elasticluster will use the boto library to connect to the desired cloud, start the virtual machines and wait until they are accessible via ssh.
After all the virtual machines are up and running, elasticluster will use ansible to configure them.
If you do a resize of the cluster (currently only growing a cluster is fully supported) new virtual machines will be created and again ansible will run for all of the virtual machines, in order to properly add the new hosts to the cluster.