All Projects → tayzlor → vagrant-puppet-mesosphere

tayzlor / vagrant-puppet-mesosphere

Licence: Apache-2.0 License
Spin up a Mesosphere cluster with Vagrant (Virtualbox / AWS / Digital Ocean)

Programming Languages

ruby
36898 projects - #4 most used programming language
Puppet
460 projects
shell
77523 projects

vagrant-puppet-mesosphere

Create your Mesosphere stack with Vagrant and Puppet (Virtualbox / AWS / Digital Ocean are supported providers).

This creates a Mesos cluster in which Marathon framework and Consul (Optional, used for service discovery) are running. This means you can build your own Mesos+Marathon+Docker PaaS with vagrant up! If you want to deploy docker containers, please refer to the chapter "Deploy Docker Container with Marathon" in this blog entry.

Prerequisites

Clone this repository and update git submodules:

$ git clone https://github.com/tayzlor/vagrant-puppet-mesosphere.git
$ cd vagrant-puppet-mesosphere
$ git submodule init
$ git submodule update

Mesos Standalone on VirtualBox

Includes -

  • Docker (1.4.0)
  • Mesos master (x1)
  • Mesos slave (x1)
  • Marathon (0.7.5)
  • Zookeeper
  • Consul, running in server mode (Optional - configure via consul_enable: param in hieradata/common.yml )
$ cd standalone
$ vagrant up

After box is up, you can see services running at:

Mesos Cluster on VirtualBox

Cluster Configuration

Cluster configuration is defined at cluster/cluster.yml. You can edit the file to configure cluster settings.

# Mesos cluster configurations
# The numbers of servers
##############################
master_n: 1      # hostname will be master1,master2,…
slave_n : 1      # hostname will be slave1,slave2,…

# Memory and Cpus setting(only for virtualbox)
##########################################
master_mem : 256
master_cpus: 1
slave_mem  : 512
slave_cpus : 2

# private ip bases
# When ec2, this should be matched with
# private addresses defined by subnet_id below.
################################################
master_ipbase: "172.31.1."
slave_ipbase : "172.31.2."

Node types

mesos-master

Includes -

  • Docker (1.4.0)
  • Mesos (running in master server mode)
  • Marathon (0.7.5)
  • Zookeeper
  • Consul, running in server mode (Optional - configure via consul_enable: param in cluster.yml)

mesos-slave

Includes -

  • Docker (1.4.0)
  • Mesos (running in slave server mode)
  • Consul, running in agent mode (optional - configure via consul_enable: param in cluster.yml)

Launch Cluster

This may takes several minutes(10 to 20 min.).

$ cd cluster
$ vagrant up

At default setting, after all the boxes are up, you can see services running at:

Destroy Cluster

this operations all VM instances forming the cluster.

$ cd cluster
$ vagrant destroy

Credits

Inspired by - https://github.com/everpeace/vagrant-mesos which is similar but uses Chef, and has a slightly different cluster layout / components. http://philzim.com/2014/11/12/service-discovery-orchestration-with-mesos-and-consul

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].