Forge Home


Puppet module for installing and configuring the Marathon framework for Mesos.


17,942 latest version

4.6 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.4.3 (latest)
  • 0.4.2
  • 0.4.1
  • 0.4.0
  • 0.1.2
  • 0.1.1
  • 0.1.0
released Aug 10th 2016
This version is compatible with:
  • ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'meltwater-marathon', '0.4.3'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add meltwater-marathon
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install meltwater-marathon --version 0.4.3

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



meltwater/marathon — version 0.4.3 Aug 10th 2016


Puppet Forge Version Puppet Forge Downloads Travis branch By Meltwater Maintenance license

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with marathon
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.


Provides a class to install the Marathon framework for Mesos.

Module Description

The marathon module sets up marathon on a mesos cluster.

This module has been tested against Marathon 0.13.0 and Mesos 0.26.0 and is known to not support all features against earlier versions.


What marathon affects

  • marathon repository files.
  • marathon package.
  • marathon configuration file.
  • marathon service.

Beginning with marathon

include '::marathon'


All options and configuration can be done through interacting with the parameters on the main marathon class. These are documented below.

marathon class

To begin with the marathon class controls the installation of marathon. In here you can control many parameters relating to the package and service, such as disabling puppet support of the service:

class { '::marathon':
  package_ensure  => 'present',
  version         => '0.15.2',
  manage_repo     => true,
  install_java    => false,
  init_style      => 'systemd',
  bin_path        => '/usr/bin',
  extra_options   => '--event_subscriber http_callback',
  master          => ['localhost'], # or ['localhost:2181']
  master_url_type => 'zookeeper', # default
  master_zk_path  => 'mesos', # default
  zk              => ['localhost'],
  zk_path         => 'marathon', # default
  zk_default_port => '2181', # default
  manage_user     => true,
  user            => 'marathon',
  group           => 'marathon',

Or automatically installing java as part of the marathon setup:

class { '::marathon':
  install_java => true,
  java_version => 'java-1.7.0-openjdk',



  • marathon: Main class for installation and service management.
  • marathon::install: Handles package installation.
  • marathon::params: Different configuration data for different systems.
  • marathon::service: Handles the marathon service.
  • marathon::repo: Handles apt repo for Redhat/Debian systems.



String, the name of the package to install.


Determines the ensure state of the package. Set to present by default, but could be changed to latest.


Determines the version of the package. Set to undef by default, but could be changed to 0.15.2, etc...


Boolean, whether or not to manage package repositories for mesosphere.


Boolean, if enabled install the java JDK


String, the java version to install.


String, the style of init system your system uses.


String, the path of the marathon executable.


Boolean, if enabled enables the marathon service.


The state of the service..


String, the extra options on the marathon command


Array, An array of Mesos master URLs. If using zookeeper, the format is ['host1', 'host2'] or ['host1:2181', 'host2:2181']. That will internally be converted to a zk url like zk://host1:port,host2:port/mesos by using master_zk_path(default: mesos) and zk_default_port(default: 2181) If not using ZooKeeper, a format like ['http://host1', 'http://host2'] is also acceptable with master_url_type set to "http"


Array, The ZooKeeper Hosts for storing state. An array of ZooKeeper IPs. The format is ['host1', 'host2'] or ['host1:2181', 'host2:2181']. That will internally be converted to a zk url like zk://host1:port,host2:port/marathon by using zk_path(default: marathon) and zk_default_port(default: 2181)


String, the type of the master endpoints, 'zookeeper' or 'http'


String, the trailing path to use for the master endpoints.


String, the trailing path to use for the zk endpoints.


String, the default port to use for zookeeper urls.


Boolean, if enabled sets up the user that the marathon process will run as .


String, the user name to use if manage_user = true.


String, the user group to use if manage_user = true.


This module has been built on and tested against Puppet 3.x and Puppet 4.x

The module has been tested on:

  • RedHat Enterprise Linux 6/7
  • Debian 6/7
  • CentOS 6/7
  • Ubuntu 12.04/14.04

Testing on other platforms has been light and cannot be guaranteed.

Module dependencies

If running CentOS/RHEL, and using the yum provider, ensure the epel repo is present.

If you want to run Marathon, you'll likely want to look at this module too