A Puppet module for managing Chronos.
- Overview
- Setup - The basics of getting started with chronos
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
This Puppet module installs the Chronos package, manages the configuration and service, and creates jobs using Chronos' HTTP API.
If you're using r10k or librarian-puppet, add the following to your Puppetfile:
mod 'puppetlabs-chronos', :git => 'git://github.com/puppetlabs/puppetlabs-chronos.git', :ref => 'v0.1.0'
- Manage Chronos configuration files
master
,http_port
, andzk_hosts
in/etc/chronos/conf
- Install the Chronos package and ensure the service is running
- Create jobs using the Chronos HTTP API
This module adds a new type and provider, chronos_job
, that will
automatically be copied to nodes using pluginsync.
To install Chronos on a node, simply include the Chronos class:
include chronos
The module does allow for some customizations, but please read the "limitations" section below before using them.
class { 'chronos':
master => 'zk://10.1.1.1:2181,10.1.1.2:2181,10.1.1.1.3:2181/mesos',
zk_hosts => '10.1.1.1:2181,10.1.1.2:2181,10.1.1.3:2181',
conf_dir => '/etc/chronos/conf',
http_port => '4400',
manage_package_deps => true,
package_name => 'chronos',
service_name => 'chronos',
}
- This module will not add the Mesosphere repo to the system's package manager. It is recommended that the user manage the repo in a profile, using the puppetlabs/apt or stahnma/epel modules.
- The
chronos_job
type requires that two Ruby Gems are present on the system: httparty and json. Thechronos
class will install these gems, but the "ruby" and "ruby-dev" packages need to be managed separately. - The
master
andzk_hosts
params must be left blank if Chronos is being installed on a machine that uses Mesos packages provided by Mesosphere. For more information, see mesos/chronos#481
Please see the contributing guidelines.