Home

Awesome

NOTE

I haven't maintained this for a couple of years now, Ansible has moved on a bit.

Also the base box will need an update.

Mesos cluster

CentOS 7 based Mesos cluster. Intended to be a clean baseline for framework testing.

Currently 0.28.1 with docker support and cgroups isolation (see roles/mesos/{slave,master}/defaults for various tunings).

See frameworks/ for some ways to run frameworks against this stack.

base OS

CentOS 7.x x64 (from https://github.com/box-cutter/centos-vm ) - see Vagrantfile for precise version.

requirements

assumptions

Vagrant setup

an inventory for Vagrant is in vagrant/hosts, the hostnames in there need to match your Vagrantfile.

(NB: you won't get a lot of RAM offered by the slaves. Mesos > 0.20.0 reserves 1Gb or half system RAM for the OS)

name resolution

we'll use a Vagrant plugin to ensure all nodes (and our host) can resolve each others names.

The hostmanager plugin will auto-manage that.

vagrant plugin install vagrant-hostmanager

dedicated storage for /var/mesos on the slaves

This should stop slaves being taken out when sandboxes overflow, and also allow some custom mount options (see Vagrantfile for detail). the storage attaches at /dev/sdb

vagrant plugin install vagrant-persistent-storage

Disks live under disks/ at the top of this repo.

do the thing

vagrant up

NB: hostmanager will (try to) edit your local /etc/hosts

wiping

If you want to blow everything away, this should do the trick:

vagrant destroy -f
for i in master1 slave1 slave2
  do
    ssh-keygen -R $i
  done
# remove the disks via Virtualbox 'Virtual Media Manager'

time for Ansible

run the main play with:

ansible-playbook -i vagrant/ site.yml

If you add/destroy vagrant VMs, the 'vagrant up' should auto-manage your local /etc/hosts along with existing VMs. If you need to ensure it's up to date, just run

vagrant hostmanager

vars

BUGS

Oh, I expect so. Log an issue / PR if you notice any.