Skip to content

ReubenBond/cookbook-mesos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mesos Cookbook

Install Mesos(http://mesos.apache.org/) and configure mesos master and slave. This cookbook also supports installation by both bulding from source and with Mesosphere package. You can switch installation type by node[:mesos][:type] variable (source or mesosphere).

[BETA] This cookbook also contains some mesos scheduler framework or executors:

  • mesos::docker-exectuor (only supports Mesos 0.14.0)
  • mesos::marathon-framework (planned.)

Platform

only support ubuntu

Installation Type

You have to specify intallation type (source or mesosphere) by node[:mesos][:type] variable.

Recipies

mesos::default

install mesos by build_from_source recipe or mesosphere recipe.

###mesos::build_from_source install mesos(download zip from github, configure, make, make install).

mesos::mesosphere

install mesos using mesosphere's mesos package. You can also install zookeeper package by node[:mesos][:mesosphere][:with_zookeeper] if required because Mesospher's mesos package doesn't include zookeeper.

mesos::master

configure master and cluster deployment configuration files. If you choose mesosphere, node[:mesos][:prefix] would be overridden by /usr/local because mesosphere package installs deploy files to the directory.

  • node[:mesos][:prefix]/var/mesos/deploy/masters
  • node[:mesos][:prefix]/var/mesos/deploy/slaves
  • node[:mesos][:prefix]/var/mesos/deploy/mesos-deploy-env.sh
  • node[:mesos][:prefix]/var/mesos/deploy/mesos-master-env.sh

if you choose installation type mesosphere, this recipe also confiures upstart conf files which are installed by mesosphere mesos package.

  • /etc/mesos/zk
  • /etc/defaults/mesos
  • /etc/defaults/mesos-master
How to configure mesos-master

You can configure mesos-master command line options by node[:mesos][:master] object. If you have a configuration below,

node[:mesos][:master] == {
  :port    => "5050",
  :log_dir => "/var/log/mesos",
  :zk      => "zk://localhost:2181/mesos",
  :cluster => "MyCluster"
}

Then mesos-master will be invoked with these options like this.

mesos-master --zk=zk://localhost:2181/mesos --port=5050 --log_dir=/var/log/mesos --cluster=MyCluster

See See here for available options or the output of of mesos-master --help.

mesos::slave

configure slave configuration files. If you choose mesosphere, node[:mesos][:prefix] would be overridden by /usr/local because mesosphere package installs deploy files to the directory.

  • node[:mesos][:prefix]/var/mesos/deploy/mesos-slave-env.sh

if you choose installation type mesosphere, this recipe also confiures upstart conf files which are installed by mesosphere mesos package.

  • /etc/mesos/zk
  • /etc/defaults/mesos
  • /etc/defaults/mesos-slave
How to configure mesos-slave

You can configure mesos-slave command line options by node[:mesos][:slave] object. If you have a configuration below,

node[:mesos][:slave] == {
  :master    => "zk://localhost:2181/mesos",
  :log_dir   => "/var/log/mesos",
  :isolation => "cgroups",
  :work_dir  => "/var/run/work"
}

Then mesos-slave will be invoked with these options like this.

mesos-slave --master=zk://localhost:2181/mesos --log_dir=/var/log/mesos --isolation=cgroups --work_dir=/var/run/work

See here for available options or the output of mesos-slave --help.

[BETA] mesos::docker-executor

install mesos-docker executor. currently only Mesos 0.14.0 is supported.

NOTE: This cookbook DOES NOT install docker automatically. So, you need to install docker manually. see ./sample/mesosphere/Vagrantfile

Usage

please see bellows

Attributes

mesos::default

Key Type Description Default
[:mesos][:type] String installation type(source or mesosphere) source

mesos::build_from_source

Key Type Description Default
[:mesos][:version] String Version(branch or tag name at http://github.com/apache/mesos). 0.15.0-rc5
[:mesos][:prefix] String Prefix value to be passed to configure script /usr/local
[:mesos][:home] String Directory which mesos sources are extracted to(node[:mesos][:home]/mesos). /opt
[:mesos][:build][:skip_test] Boolean Flag whether test will be performed. true

mesos::mesosphere

Key Type Description Default
[:mesos][:version] String Version(one of 0.14.0, 0.14.1, 0.14.2, 0.15.0-rc4, 0.15.0-rc5). 0.15.0-rc5
[:mesos][:mesosphere][:with_zookeeper] String flag for installing zookeeper package false

mesos::master

Key Type Description Default
[:mesos][:prefix] String Prefix value to be passed to configure script. This value will be overridden by /usr/local when you choose mesosphere. /usr/local
[:mesos][:ssh_opt] String ssh options to be used in mesos-[start|stop]-cluster -o StrictHostKeyChecking=no
-o ConnectTimeout=2
[:mesos][:deploy_with_sudo] String Flag whether sudo will be used in mesos-[start|stop]-cluster 1
[:mesos][:cluster_name] String [OBSOLUTE] Human readable name for the cluster, displayed at webui. MyCluster
[:mesos][:mater_ips] Array of String IP list of masters used in mesos-[start|stop]-cluster [ ]
[:mesos][:slave_ips] Array of String IP list of slaves used in mesos-[start|stop]-cluster [ ]
[:mesos][:master][:<option_name>] String You can set arbitral command line option for mesos-master. See [here](http://mesos.apache.org/documentation/latest/configuration/) for available options or the output of `mesos-master --help`.

mesos::slave

Key Type Description Default
[:mesos][:prefix] String Prefix value to be passed to configure script. This value will be overridden by /usr/local when you choose mesosphere. /usr/local
[:mesos][:slave][:master] String [REQUIRED] mesos master url.This should be ip:port for non-ZooKeeper based masters, otherwise a zk:// . when mesosphere, you should set zk:// address.
[:mesos][:slave][:<option_name>] String You can set arbitral command line option for mesos-slave. See [here](http://mesos.apache.org/documentation/latest/configuration/) for available options or the output of `mesos-slave --help`.

Contributing

  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write you change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request using Github

License and Authors

Copyright:: 2009-2013 Shingo Omura, All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Releases

No releases published

Packages

No packages published