This is an old revision of the document!


Build your own OAR cluster with docker

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.

OAR-docker's repository is hosted on github: https://github.com/oar-team/oar-docker. It's currently in active development, but feel free to clone it and give it a try !

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 oar-docker
$ pip install --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 want to install in the python user context (in your home directory), add the '–user' option to all pip commands:

pip install --user oar-docker

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]
  --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
  init        Initialize a new environment.
  install     Install and configure OAR from src
  logs        Fetch the logs of all containers.
  ssh         Connect to machine via SSH [deprecated]
  ssh-config  Output OpenSSH valid ssh config [deprecated]
  start       Create and start the containers
  status      Output status of the cluster
  stop        Stop and remove all containers

Getting started

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

$ oardocker init

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

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 .   ## ou . est le chemin vers les sources de OAR

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).

Logs

Pierre Neyron 2014/07/22 20:57

We renamed the project: docker-oarcluster became oar-docker. Sorry for the inconvenience.

Pierre Neyron 2014/09/03 12:00

wiki/oar-docker.1430928482.txt.gz · Last modified: 2015/05/06 18:08 by neyron
Recent changes RSS feed GNU Free Documentation License 1.3 Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki