Molns

MOLNs: a cloud appliance for systems biology applications

View the Project on GitHub Molns/molns

MOLNs spatial stochastic simulation appliance

MOLNs is a cloud appliance that will set up, start and manage a virtual platform for scalable, distributed computational experiments using PyURDME (www.pyurdme.org).

Prerequisites

To use MOLNs, you need valid credentials to an OpenStack cloud, Amazon Elastic Compute Cloud (EC2) or HP Helion public cloud. You also need Python, and the following packages:

To prepare your system:

  1. Install pip If you don't have pip, the python packagem manager, installed already, you will need to install it. The best way to do that is to use the 'get-pip' script, which can be found here: https://bootstrap.pypa.io/get-pip.py

  2. Install python packages with pip:

    • sudo pip install sqlalchemy
    • sudo pip install boto
    • sudo pip install paramiko
      • Install of paramiko will fail if Python development libraries are missing, if that is the case
        • sudo apt-get install python-dev
    • sudo pip install python-novaclient
      • In case of problems, more information can be found here.
  3. Download and install MOLNs:

    Download the lastest version of molns from this web address: https://github.com/Molns/molns/archive/master.zip This will download the compressed, archive "molns-master.zip". Next, uncompress the archive to create the folder "molns-master". Finally, move this folder to the location you want molns installed on your system.

  4. Configure your shell:

    Molns needs to know where it has been installed. The easiest way to this is to add a line to your shell configuration file. The default shell on OSX is bash, thus the ".bash_profile" file in your home directory is the configuration file. On Ubuntu, the file ".bashrc" in your home directory is sometimes the configuration file. Add this line: source "/PATH/TO/MOLNS/INSTALLATION/molns_init.sh" where /PATH/TO/MOLNS/INSTALLATION/ is the path to where the molns software is installed.

Obtaining Security Credentials/API keys

The molns CLI will prompt you for your access credentials for the cloud provider you want to use. This involves setting up accounts at the provider(s) of choice. Currently, Amazon EC2 and OpenStack, which includes HP Helion, are supported. Please follow the instructions of respective cloud provider to sign up for an account and to obtain API access credentials before beginning to use molns.

** Tip: ** molns will prompt you to enter your security credentials. However, it will look for environmental variables and use them as defaults if available. For openstack, simply source the openrc file you downloaded. For EC2, set the following environmental variables:

$ export AWS_ACCESS_KEY = < Access Key ID > $ export AWS_SECRET_KEY = < Secret Access Key >

Quick start

To set up a start a MOLNs virtual platform named "molns-test" in a cloud provider "Provider", execute the following sequence of commands (you will be taken through and interactive setup process)

$ molns provider setup Provider
$ molns controller setup molns-test
$ molns worker setup molns-test-workers
$ molns start molns-test
$ molns worker start molns-test-workers

You will be presented with a URL for the controller node of your platform. Navigate there using a browser (Google Chrome or Firefox are recommended). The easiest way to get started using the platform is to dive into one of the provided tutorial notebooks that are made available in every fresh MOLNs virtual platform.

For a complete list of the valid subcommands for molns, type $ molns help

Above commands explained

The molns CLI works with three abstractions for setting up and managing your virtual platform: Provider, Controller and Worker objects. Provider represents an IaaS provider (EC2, OpenStack), Controller represents a head node of the Molns cluster, and hosts the IPython Parallel controller and the IPython Notebook server. If the controller node has X VCPUs, X-2 Ipython engines (workers) will be deployed on the controller host. Worker represents one or more nodes hosting additional IPython engines.