Create clusters of VMs on the cloud and configure them with Ansible.





GitHub Stars



Last Commit

6mos ago











ElastiCluster |travis-ci-status| |gitter|


.. This file follows reStructuredText markup syntax; see for more information

.. |travis-ci-status| image::

.. |gitter| image:: :alt: Join the chat at :target:

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 your own 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 <!forum/elasticluster> 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:
  • HPC clusters using SLURM or GridEngine (incl. support for CUDA-enabled GPUs);
  • Spark / Hadoop clusters with HDFS and Hive/SQL;
  • distributed storage clusters using GlusterFS, OrangeFS, or Ceph_;
  • ...or anything that you can install with an Ansible_ playbook!
  • 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 simplest way to run ElastiCluster is to use the official Docker image. If you cannot or want not to use Docker, please see alternate installation instructions on ElastiCluster's Read The Docs <>_ website.

To install ElastiCluster over Docker: (1) download the elasticluster.sh_ script script into a file, then (2) type this at your terminal prompt::

chmod +x

That's it! You can now check that ElastiCluster is ready by running:: --help

The first time it is run, the script will check if Docker is installed, and ask for permission to install it if Docker is not found. Follow the on-screen instructions; see section Getting Help if you're in trouble.

You can also rename file to elasticluster, if you so like, to be consistent with the rest of the documentation.


Alternatively, you can also perform both steps at the terminal prompt::

# use this if the `wget` command is installed
wget -O
chmod +x

# use this if the `curl` command is installed instead
curl -O
chmod +x

Choose either one of the two methods above, depending on whether wget or curl is installed on your system (Linux systems normally have wget; MacOSX normally uses curl).

After ElastiCluster is installed, run this command to deploy an example configuration file_::

elasticluster list-templates

The configuration file is located in .elasticluster/config; adjust it to your liking using the configuration reference__.

.. __:

More example configurations for popular cluster types can be found in the examples/__ directory.

.. __:

Getting help

For anything concerning ElastiCluster, including trouble running the installation script, please send an email to <> or post a message on the web forum <!forum/elasticluster>. Include the full output of the script in your email, in order to help us to identify the problem.

.. References

References should be sorted by link name (case-insensitively), to make it easy to spot a missing or duplicate reference.

.. Amazon's Elastic Compute Cloud EC2: .. Ansible: .. CentOS: .. Ceph: .. Debian GNU/Linux: .. elasticluster: .. example configuration file: .. enhancement requests and ideas: .. Ganglia: .. GC3 Hobbes cloud: .. github elasticluster repository: .. github: .. GlusterFS: .. GNU General Public License version 3: .. Google Compute Engine: .. Grid Computing Competence Center: .. GridEngine: .. Hadoop: .. IPython cluster: .. mailing-list:!forum/elasticluster .. OpenStack: .. OrangeFS: .. pip: .. python virtualenv: .. Python: .. Services and Support for Science IT: .. Spark: .. SLURM: .. TORQUE+MAUI: .. Ubuntu: .. University of Zurich: .. video:

.. (for Emacs only) .. Local variables: mode: rst End:

Rate & Review

Great Documentation0
Easy to Use0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Unwelcoming Community0