praekeltfoundation / seed-stack

A Vagrantfile that provisions a VirtualBox for our Seed Stack

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Seed Stack

Install Vagrant and then:

$ git clone git://github.com/praekelt/seed-stack.git
$ cd seed-stack
$ vagrant plugin install vagrant-hostmanager
$ vagrant up standalone boot

This will result in a stack running:

  1. Zookeeper
  2. Mesos Master
  3. Mesos Slave
  4. Marathon
  5. Docker
  6. Docker Registry
  7. Consul
  8. Consular
  9. Consul-Template
  10. Nginx
  11. Mission Control

All of this is installed and configured using Puppet. For more information, see the Puppet README.

The available VMs defined in the Vagrantfile are as follows: - standalone - a Seed Stack combination controller/worker with a Docker

Registry and load-balancer
  • controller - a Seed Stack controller with a load-balancer
  • worker - a Seed Stack worker with a Docker Registry
  • boot - a bootstrap machine Puppet server used for provisioning other VMs (must be provisioned last)

You can probably run the standalone VM and controller/worker VMs at the same time, but there shouldn't be any need to do so.

Once running, you can manually launch the sample python-server application through marathon:

$ curl -XPOST \
    -d @python-server.json \
    -H 'Content-Type: application/json' \
    http://standalone.seed-stack.local:8080/v2/apps

You can watch the deployment progress in the Marathon web UI (see below). Deploying for the first time on a newly provisioned VM may take a while because it has to download the docker image first.

Then you should be able to use the application in your web browser at http://python-server.192.168.55.9.xip.io

(For the controller/worker setup, use controller.seed-stack.local and 192.168.55.11 instead.)

The following services are available on the standalone or controller VM:

Marathon
http://standalone.seed-stack.local:8080
Mesos
http://standalone.seed-stack.local:5050
Consul
http://standalone.seed-stack.local:8500/ui/
Mission Control (log in with admin/pass)
http://mc2.infr.standalone.seed-stack.local

In order to access apps running in Mission Control, you may need to add /etc/hosts entries for their domains.

Acknowledgements

The vagrant plugin used for provisioning with a bootstrap machine is heavily inspired by the one in https://github.com/dcos/dcos-vagrant

About

A Vagrantfile that provisions a VirtualBox for our Seed Stack

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Ruby 47.6%Language:Puppet 35.5%Language:Shell 16.9%