Welcome to elasticluster’s documentation! — elasticluster 1.0 documentation

### Navigation

- index
- modules |
- next |
- elasticluster 1.0 documentation »

# Welcome to elasticluster’s documentation!

## Introduction

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, Google Compute Engine or an 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.

This project is an effort of the Grid Computing Competence Center at the University of Zurich, licensed under the GNU General Public License version 3.

## Features

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

- Automated cluster setup:
    - use Debian GNU/Linux, Ubuntu, or CentOS as a base operating system
    - supports multiple batch systems, including SLURM, Grid Engine or Torque/PBS
    - supports Hadoop clusters
    - add useful tools like Ganglia for monitoring...
    - ...or anything that you can install with an Ansible playbook!

- Grow a running cluster

elasticluster is currently in active development: please use the GitHub issue tracker to file enhancement requests and ideas

## Architecture

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.

## Table of Contents

- Installation
  - Installing from PyPI
  - Installing from github
  - Notes on MacOSX installation
- Configuration
  - Basic syntax of the configuration file
  - Cloud Section
  - Login Section
  - Setup Section
  - Cluster Section
  - Cluster node section
- Usage
  - The `start` command
  - The `stop` command
  - The `list` command
  - The `list-nodes` command
  - The `list-templates` command
  - The `setup` command
  - The `resize` command
  - The `ssh` command
  - The `sftp` command
- Playbooks distributed with elasticluster
  - Slurm
  - Gridengine
  - HTCondor
  - Ganglia
  - IPython cluster
  - Hadoop
  - GlusterFS
  - OrangeFS/PVFS2
- Elasitcluster programming API
  - elasticluster
  - elasticluster.cluster
  - elasticluster.conf
  - elasticluster.exceptions
  - elasticluster.gc3_config
  - elasticluster.helpers
  - elasticluster.main
  - elasticluster.module
  - elasticluster.providers
  - elasticluster.providers.ansible_provider
  - elasticluster.providers.ec2_boto
  - elasticluster.providers.gce
  - elasticluster.providers.openstack
  - elasticluster.repository
  - elasticluster.subcommands

## Indices and tables

- Index
- Module Index
- Search Page

### Navigation

- index
- modules |
- next |
- elasticluster 1.0 documentation »