Fetching contributors…
Cannot retrieve contributors at this time
131 lines (94 sloc) 4.4 KB

Welcome to elasticluster's documentation!


ElastiCluster_ aims to provide a user-friendly command line tool to create, manage and setup computing clusters hosted on cloud infrastructures (like `Amazon's Elastic Compute Cloud EC2`_, `Google Compute Engine`_, or a private OpenStack_ cloud). Its main goal is to get a private cluster up and running with just a few commands; this video demoes ElastiCluster setting up a computational batch-queueing cluster.

Complete documentation for ElastiCluster is available on the Read The Docs website. General discussion over ElastiCluster's usage, features, and bugs takes place on the mailing-list (only subscribers can post).

The ElastiCluster_ project is an effort of the `Services and Support for Science IT`_ (S3IT) unit at the `University of Zurich`_, licensed under the `GNU General Public License version 3`_.


ElastiCluster_ is in active development, and offers the following features at the moment:

  • INI-style configuration file to define cluster templates
  • Can start and manage multiple independent clusters at the same time * Automated setup of:
  • Growing and shrinking a running cluster.

ElastiCluster_ is currently in active development: please use the GitHub issue tracker to file enhancement requests and ideas, or the `mailing-list`_ for discussion.

We appreciate pull requests for new features and enhancements. Please use the master branch as starting point.


The architecture of elasticluster is quite simple: the configuration file ~/.elasticluster/config defines a set of cluster configurations and information on how to access a specific cloud service (including access id and secret keys).

Using the command line or a simple API, you can start a cluster (possibly overriding some of the default values, like the number of nodes you want to fire up) and configure it:

  • ElastiCluster_ connects to the cloud provider indicated in the cluster configuration file, starts virtual machines, and waits until they are accessible via ssh.
  • After all the VMs are up and running, ElastiCluster runs `Ansible`_ to configure the cluster.

Upon resize of the cluster [1], new virtual machines will be created and again `Ansible`_ will run on all the VMs, in order to properly add the new hosts to the cluster.

ElastiCluster commands export and import allow moving a running cluster's definition and status data from one machine to the other, to allow controlling the same cluster from different places.

[1]Currently, only growing a cluster is fully supported; shrinking a loaded cluster may remove nodes with running jobs and cause malfunctionings. See the remove-node command for a safer, albeit more low-level, way of shrinking clusters.

Table of Contents

.. toctree::  :maxdepth: 2


Indices and tables