This project utilizes a Docker-Machine to run a Mesos/Marathon Cluster. Mesos & Marathon are setup in containers with direct acces to the host docker system in the Docker-Machine.
Docker Containers
- Master
- Slave
- Marathon
- Mesos DNS
Marathon controlled applications can then be added and managed via the Marathon API using Curl, dcos if installed or the available marthon bash script.
Mesos URL can be accessed at: http://{docker-machine ip}:8080 Marathon URL can be access at http://{docker-machine ip}:5050
The benefits of this is the developer now has direct access to the underlying docker system via his client docker binary to attach, execute, anaylize logs or work with additional containers as needed.
$ git clone https://github.com/degnome/private-cloud.git
$ cd private-cloud- DOCKER_USER=username
- DOCKER_PWD=password
- DOCKER_EMAIL=email
-
Install
$ ./mesos create
-
Start
$ ./mesos start
-
Stop
$ ./mesos stop
-
Destroy
$ ./mesos destroy
Create a env.sh file to store your required environment variables if you need to login to a directory
ATTENTION: You must specify the desired repository username password and email in the file to login properly
-
Deploy a Group
$ ./marathon group_add apps/ts.json
-
Destroy a Group
$ ./marathon group_rm {groupId} -
Deploy an Application
$ ./marathon app_add apps/helloworld.json
-
Destroy an Application
$ ./marathon app_rm {appId}
Scripts exist in the tools directory to help work with the Databases.
-
Query Mesos DNS to check for the service
$ ./tools/dig marathon.mesos
-
Connect to the Cassandra DB
$ ./tools/cqlsh {CassandraDB Hostname} -
Connect to the Mongo DB
$ ./tools/mongo {MongoDB Hostname} -
Connect to the Redis DB
$ ./tools/redis-cli {RedisDB Hostname}