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.)
only support ubuntu
You have to specify intallation type (source
or mesosphere
) by node[:mesos][:type]
variable.
install mesos by build_from_source
recipe or mesosphere
recipe.
###mesos::build_from_source install mesos(download zip from github, configure, make, make install).
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.
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
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
.
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
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
.
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
please see bellows
Key | Type | Description | Default |
---|---|---|---|
[:mesos][:type] | String | installation type(source or mesosphere) | 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 |
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 |
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`. |
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`. |
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write you change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request using Github
- Author:: Shingo Omura everpeace@gmail.com
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.