Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:oar-docker [2020/02/18 17:58]
auguste [Getting started]
wiki:oar-docker [2020/03/31 15:43] (current)
neyron [Intallation and usage]
Line 1: Line 1:
 ====== ​ Build your own OAR cluster with docker ​ ====== ====== ​ 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 is a tool to setup a cluster ​of docker ​containers emulating a OAR clusterwith a frontend, a serverand possibly many nodes.
  
-OAR-docker's repository ​is hosted on github: https://​github.com/​oar-team/​oar-docker. +OAR-docker is the perfect tool for testing OAR developments. It also allows prototyping the use of other tools on top of OAR.
-It's currently in active development,​ but feel free to clone it and give it a try !+
  
-====== ​ Why use OAR-docker ?  ======+A deployment of a sandbox ​OAR cluster only takes a few seconds on a simple laptop. Node count is 3 by default, but larger clusters up hundreds of nodes can be created. A cluster of N nodes run on a machine with C core will count a total of N*C cores.
  
-Various case scenarios may affect you:+==== Intallation and usage ==== 
 +  * oar-docker is a python package available from the public repository, seehttps://​pypi.org/​project/​oar-docker. ​
  
-  * Quickly test OAR on a cluster +  * oar-docker ​source repository ​is hosted ​on github: https://​github.com/​oar-team/​oar-docker.
-  * 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: +
- +
-<code console>​ +
-$ pip install oar-docker +
-$ pip install --upgrade oar-docker +
-$ pip uninstall oar-docker +
-</​code>​ +
- +
-Or from git (last development version): +
- +
-<code console>​ +
-$ pip install git+https://​github.com/​oar-team/​oar-docker.git +
-</​code>​ +
- +
-Or if you already pulled the sources: +
- +
-<code console>​ +
-$ pip install path/​to/​sources +
-</​code>​ +
- +
-Or if you want to install in the python user context (in your home directory), add the '​--user'​ option to all pip commands: +
-<​code>​ +
-pip install --user oar-docker +
-</​code>​ +
- +
-Or if you don't have pip: +
- +
-<code console>​ +
-$ easy_install oar-docker +
-</​code>​ +
-====== 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: +
- +
-<code console>​ +
-$ oardocker init +
-</​code>​ +
- +
-If you already have OAR sources, the best is to initialize directly the oardocker project in the OAR sources directory:​ +
- +
-<code console>​ +
-$ cd path/​to/​oar/​src +
-$ oardocker init +
-</​code>​ +
- +
-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: +
- +
-<code console>​ +
-$ oardocker build +
-</​code>​ +
- +
-Now, we have to install OAR. To do this, several options are available. If you already have the OAR sources: +
- +
-<code console>​ +
-$ oardocker install .   ## ou . est le chemin vers les sources de OAR +
-</​code>​ +
- +
-Or if you want to install from tarball: +
- +
-<code console>​ +
-$ oardocker install http://​oar-ftp.imag.fr/​oar/​2.5/​sources/​testing/​oar-2.5.8.tar.gz +
-</​code>​ +
- +
-You can also launch the installation from a git repository: +
- +
-<code console>​ +
-$ oardocker install git+https://​github.com/​oar-team/​oar.git +
-</​code>​ +
- +
-We start a OAR cluster with 5 nodes: +
- +
-<code console>​ +
-$ oardocker start -n 5 +
-</​code>​ +
- +
-It is possible to share directories between host machines and all containers with the ''​-v''​ option: +
- +
-<code console>​ +
-$ oardocker start -v $PWD:/​oar_src -v /​my/​custom/​lib:/​usr/​local/​ma_lib +
-</​code>​ +
- +
-To manage the cluster: +
- +
-<code console>​ +
-$ oardocker connect frontend|server|nodeXX +
-$ oardocker logs [frontend|server|nodeXX] +
-</​code>​ +
- +
-To clean: +
- +
-<code console>​ +
-$ 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 +
-</​code>​ +
- +
-With oar-docker, it is possible to chain all commands to go faster: +
- +
-<code console>​ +
-$ oardocker init -f build install oar-2.5.4+rc4.tar.gz start -n 4 connect -l root frontend +
-</​code>​ +
- +
-For instance, to develop on OAR, we often need to install OAR, start the cluster and connect to it: +
- +
-<code console>​ +
-$ oardocker install $PWD start -n 10 -v $PWD:/​home/​docker/​oar_src connect frontend +
-</​code>​ +
- +
-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).+
  
 +See the **README** file either on [[https://​pypi.org/​project/​oar-docker|pypi]] or on [[https://​github.com/​oar-team/​oar-docker|github]] to get information to install and use oar-docker.
  
 +==== Examples ====
 +  * [[oardocker setup for Grid'​5000]]
wiki/oar-docker.1582045117.txt.gz · Last modified: 2020/02/18 17:58 by auguste
Recent changes RSS feed GNU Free Documentation License 1.3 Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki