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:
- Zookeeper
- Mesos Master
- Mesos Slave
- Marathon
- Docker
- Docker Registry
- Consul
- Consular
- Consul-Template
- Nginx
- 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-balancerworker
- a Seed Stack worker with a Docker Registryboot
- 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.
The vagrant plugin used for provisioning with a bootstrap machine is heavily inspired by the one in https://github.com/dcos/dcos-vagrant