Skip to content
Manage a small OAR developpement cluster with docker.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
kameleon
oardocker
scripts
.bumpversion.cfg
.envrc
.gitignore
.travis.yml
CHANGES.rst
MANIFEST.in
Makefile
README.rst
setup.py

README.rst

Build your own OAR cluster with docker

CI Status

oar-docker is a set of docker images especially configured for deploying your own OAR cluster. The main idea is to have a mini development cluster with a frontend, a server and some nodes that launch in just a few seconds on a simple laptop.

Why use oar-docker ?

Various case scenarios may affect you:
  • Quickly test OAR on a cluster
  • Gain time: a ten-node cluster (or more) is launched in just a few seconds and is cleaned in less than a second.
  • Save resources: docker allows the user to pool the node between various systems, resource utilization is thus considerably reduced.
  • Synced volume : allowing you to continue working on your host machine, but use the resources in the guest machine to compile or run your project.

Installation

Requirements:
  • python >= 2.7
  • docker >= 1.3

You can install, upgrade, uninstall oar-docker with these commands:

$ pip install [--user] oar-docker
$ pip install [--user] --upgrade oar-docker
$ pip uninstall oar-docker

Or from git (last development version):

$ pip install git+https://github.com/oar-team/oar-docker.git

Or if you already pulled the sources:

$ pip install path/to/sources

Or if you don't have pip:

$ easy_install oar-docker

Usage

Usage: oardocker [OPTIONS] COMMAND1 [ARGS]... [COMMAND2 [ARGS]...]...

  Manage a small OAR developpement cluster with docker.

Options:
  --workdir DIRECTORY   Changes the folder to operate on.
  --docker-host TEXT    The docker socket [default:
                        unix://var/run/docker.sock].
  --cgroup-path TEXT    The cgroup file system path [default: /sys/fs/cgroup].
  --docker-binary TEXT  The docker client binary [default: docker].
  --verbose             Verbose mode.
  --debug               Enable debugging
  --version             Show the version and exit.
  -h, --help            Show this message and exit.

Commands:
  build    Build base images
  clean    Remove all stopped containers and untagged...
  connect  Connect to a node.
  destroy  Stop containers and remove all images
  exec     Run a command in an existing node.
  init     Initialize a new environment.
  install  Install and configure OAR from src
  logs     Fetch the logs of all nodes or only one.
  reset    Restart the containers
  start    Create and start the nodes
  status   Output status of the cluster
  stop     Stop and remove all nodes

Getting started

To get started with oar-docker, the first thing to do is to initialize a project:

$ oardocker init -e jessie

If you already have OAR sources, the best is to initialize directly the oardocker project in the OAR sources directory:

$ cd path/to/oar/src
$ oardocker init -e jessie

You have to do this only once. It allows you to import the Dockerfiles and other configuration files.

We then launch the base image build:

$ oardocker build

Now, we have to install OAR. To do this, several options are available.

If you already have the OAR sources:

$ oardocker install /path/to/oar_src

Or if you want to install from tarball:

$ oardocker install http://oar-ftp.imag.fr/oar/2.5/sources/testing/oar-2.5.4+rc4.tar.gz

You can also launch the installation from a git repository:

$ oardocker install git+https://github.com/oar-team/oar.git

We start a OAR cluster with 5 nodes:

$ oardocker start -n 5

It is possible to share directories between host machines and all containers with the -v option:

$ oardocker start -v $PWD:/oar_src -v /my/custom/lib:/usr/local/ma_lib

To manage the cluster:

$ oardocker connect frontend|server|nodeXX
$ oardocker logs [frontend|server|nodeXX]

To clean:

$ oardocker stop  # stops and removes all containers
$ oardocker clean  # removes all stopped containers (failed) and the untagged images <none:none>
$ oardocker destroy  # removes all images and containers

With oar-docker, it is possible to chain all commands to go faster:

$ oardocker init -f build install oar-2.5.4+rc4.tar.gz start -n 4 connect -l root frontend

For instance, to develop on OAR, we often need to install OAR, start the cluster and connect to it:

$ oardocker install $PWD start -n 10 -v $PWD:/home/docker/oar_src connect frontend

One last thing to know. The stop command is automatically launched before every start, install and build ... If we launch multiple times the last command, we will always obtain the same result. It can be useful to experiment and develop (even) faster.

Security

oar-docker is a development project and a testing one. It is in no way secure. Besides, the private ssh key used is also insecured since it is public (you can find it in the sources).

Related resources

You can’t perform that action at this time.