Hello Shane,

> My intent for ElastiCluster is to deploy Slurm locally in our building's
> existing Ubuntu 16.04 workstations with Nvidia 1080Ti GPUs using docker and
> ansible for small non urgent jobs.
> Then also deploy to AWS for larger and more urgent/client jobs.
> I was hoping to run ElastiCluster locally (not cloud) first.

If I were you, I would deploy a small test cluster on AWS first, so
you know what you are getting with ElastiCluster.  If then you're
happy with it, try to overwrite your current cluster's config.

You can find a sample config file for deploying a SLURM cluster with
GPUs on AWS here:
https://github.com/gc3-uzh-ch/elasticluster/blob/master/examples/slurm-with-gpu-on-aws.conf

> I'm happy to let ElastiClustic over my existing manual setup
> I am a little confounded by the Config settings would be for a local only
> deployment
> Have you deployed ElastiCluster on a local network of servers or
> workstations before?

It can be done (and yes I have done it), but it's not an intended use
case of ElastiCluster ;-)

Basically, you would do it like this:

1.) Create an Ansible inventory file using the IP addresses of your
local machines.

E.g., assuming your local cluster frontend is 10.0.0.1 and the nodes
are 10.0.0.11 through 10.0.0.20, you would write something like the
following:

######## begin file `cluster,inventory` ########

[slurm_master]
master001 ansible_host=10.0.0.1 ansible_user=ubuntu
ansible_python_interpreter=/usr/bin/python2.7 multiuser_cluster=yes

[slurm_worker]
worker001 ansible_host=10.0.0.11 ansible_user=ubuntu
ansible_python_interpreter=/usr/bin/python2.7 multiuser_cluster=yes
worker002 ansible_host=10.0.0.12 ansible_user=ubuntu
ansible_python_interpreter=/usr/bin/python2.7 multiuser_cluster=yes
worker003 ansible_host=10.0.0.13 ansible_user=ubuntu
ansible_python_interpreter=/usr/bin/python2.7 multiuser_cluster=yes
# ... etc

######## end file `cluster.inventory` ########

2.) Check out the ElastiCluster playbooks

For instance, to check out code in directory `$HOME/elasticluster`, run::

    git clone https://github.com/gc3-uzh-ch/elasticluster $HOME/elasticluster

3.) Navigate to the directory containing the ElastiCluster playbooks::

    cd $HOME/elasticluster/elasticluster/share/playbooks

4.) Now run Ansible to do the deployment::

    ansible-playbook --inventory /path/to/cluster.inventory --become
-v ./site.yml

Basically, everything is controlled via Ansible groups and variables
in the inventory file;
by modifying the inventory file you can get Ansible to install and
configure different pieces
of software.  This is also why it may be a good idea to deploy a test
cluster first: so you
can have a look at the inventory file generated by ElastiCluster and
use that as a base
for your local cluster.

Also note: ElastiCluster requires Ansible < 2.4.0 (there's some
incompatibility with Ansible
2.4 which I haven't properly figured out yet).

Let us know how it goes!

Ciao,
R

-- 
You received this message because you are subscribed to the Google Groups 
"elasticluster" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticluster+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to