Coder Social home page Coder Social logo

kuberkaul / terraform-mesos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from containersolutions/terraform-mesos

0.0 1.0 0.0 80 KB

Stuff for programming a Mesos cluster on the Google Cloud

License: Apache License 2.0

HCL 27.99% Shell 72.01%

terraform-mesos's Introduction

Container Solutions Terraform Mesos

How to set up a Mesos cluster on the Google Cloud using Terraform

Install Terraform

Get your Google Cloud JSON Key

Get Google Cloud SDK

Add your SSH key to the Project Metadata

  • Back in the Developer Console, go to Compute - Compute Engine - Metadata and click the SSH Keys tab. Add your public SSH key there.
  • Use the path to the private key and the username in the next step as gce_ssh_user and gce_ssh_private_key_file

Prepare Terraform configuration file

Create a file mesos.tf containing something like this:

module "mesos" {
    source                      = "github.com/ContainerSolutions/terraform-mesos"
    account_file                = "/path/to/your.key.json"
    project                     = "your google project"
    region                      = "europe-west1"
    zone                        = "europe-west1-d"
    gce_ssh_user                = "user"
    gce_ssh_private_key_file    = "/path/to/private.key"
    name                        = "mymesoscluster"
    masters                     = "3"
    slaves                      = "5"
    network                     = "10.20.30.0/24"
    domain                      = "example.com"
    image                       = "ubuntu-1504-vivid-v20151120"
    mesos_version               = "0.22.1"
}

See the variables.tf file for the available variables and their defaults

Standard Mesos Ubuntu package

If you set image to the standard Ubuntu 15.04 GCE image name, you get the standard Mesos version distributed with this operating system.

image = "ubuntu-1504-vivid-v20151120"

Specific Mesos Ubuntu package version

If you decide to use a specific version of Mesos, which does exist as an Ubuntu package, enter the version number to the optional mesos_version configuration option.

image = "ubuntu-1504-vivid-v20151120"
mesos_version = "0.25.0-0.2.70.ubuntu1504"

Mesos built from a specific git commit

You might want to try Mesos installed from a specific commit (e.g. "69d4cf654", or "master"). In order to do it, build a GCE virtual machine image (see images/README.md) with Mesos installed and use the GCE_IMAGE_NAME you give it as the image configuration option, e.g.:

image = "ubuntu-1504-trusty-mesos"

Get the Terraform module

Download the module

terraform get

Create Terraform plan

Create the plan and save it to a file. Use module-depth 1 to show the configuration of the resources inside the module.

terraform plan -out my.plan -module-depth=1

Create the cluster

Once you are satisfied with the plan, apply it.

terraform apply my.plan

VPN configuration

Ports 80, 443 and 22 are open on all the machines within the cluster. Accessing other ports, e.g. Mesos GUI (port 5050) or Marathon GUI (port 8080) is only possible with VPN connection set up.

Use the following command to get the location of client.ovpn file, that was created as part of the cluster provisioning.

terraform output -module mesos openvpn

Download the client.ovpn file using e.g. scp and use it to establish VPN with the cluster. Once the VPN is up, you can access all machines within the cluster using their private IP addresses.

Visit the web interfaces

When the cluster is set up, check the Google Developers Console for the internal addresses of the master nodes (or scroll back in the output of the apply step to retrieve them).

Destroy the cluster

When you're done, clean up the cluster with

terraform destroy

To do

  • Cannot reach the log files of the Mesos slave nodes from the web interface on the leading master

The installation and configuration used in this module is based on this excellent howto: https://www.digitalocean.com/community/tutorials/how-to-configure-a-production-ready-mesosphere-cluster-on-ubuntu-14-04

terraform-mesos's People

Contributors

thijsschnitger avatar jrslv avatar frankscholten avatar mwl avatar

Watchers

Kuber Kaul avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.