Forge Home

marathon

Mesosphere Marathon installation / management module

15,727 downloads

11,306 latest version

3.0 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

  • 1.0.12 (latest)
  • 1.0.11
  • 1.0.10
  • 1.0.9
  • 1.0.8
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
released May 3rd 2015
This version is compatible with:
  • Puppet Enterprise 3.x
  • Puppet 3.x

Start using this module

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

Add this module to your Puppetfile:

mod 'pennycoders-marathon', '1.0.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

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

Manually install this module globally with Puppet module tool:

puppet module install pennycoders-marathon --version 1.0.1

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.

Download

Documentation

pennycoders/marathon — version 1.0.1 May 3rd 2015

Puppet module for mesosphere's Marathon

This module installs and configures Mesosphere's marathon task runner.

Classes:

  • marathon: This is the main class, all the other sub-classes inherit from it.
    • Parameters:
          class marathon(
          # Install or uninstall (present|absent)
            $installation_ensure      = 'present',
          # Marathon binary url
            $url                      = 'https://downloads.mesosphere.io/marathon/v0.8.2-RC1/marathon-0.8.2-RC1.tgz',
          # Marathon binary digest string
            $digest_string            = '45a481f4703e1455f8aafa037705c9033200f2dc7f9d5e6414acde533d6cb935',
          # The digest type
            $digest_type              = 'sha256',
          # Temporary directory to download the files to
            $tmp_dir                  = '/tmp',
          # Marathon Installation directory
            $install_dir              = '/opt/marathon',
          # The username that marathon will submit tasks as
            $user                     = 'root',
          # Whether or not to create scripts in /usr/local/bin
            $create_symlinks          = true,
          # Create symlinks for the marathon binaries for easier access
            $haproxy_discovery        = false,
          # Create and manage the marathon service
            $manage_service           = true,
          # The marathon service's name
            $service_name             = 'marathon',
          # The marathon options
            $options                  = hiera('classes::marathon::options', {}),
          # Manage the firewall rules
            $manage_firewall          = false,
          # Manage the user that the tasks will be submitted as
            $manage_user              = true,
          # Whether or not the integrity of the archive should be verified
            $checksum                 = true,
          # Global haproxy options
            $haproxy_global_options   = hiera('classes::haproxy::global_options', {}),
          # Default HAproxy options
            $haproxy_default_options  = hiera('classes::haproxy::default_options', {})
          ) {
      
  • marathon::install: This is the class that actually installs and configures marathon
    • Parameters:
          class marathon::install (
          # Install or uninstall (present|absent)
            $installation_ensure     = 'present',
          # Marathon binary url
            $url                     = $marathon::url,
          # Marathon binary digest string
            $digest_string           = $marathon::digest_string,
          # The digest type
            $digest_type             = 'sha256',
          # Temporary directory to download the files to
            $tmp_dir                 = $marathon::tmp_dir,
          # Marathon Installation directory
            $install_dir             = $marathon::install_dir,
          # The username that marathon will submit tasks as
            $user                    = $marathon::user,
          # Whether or not to create scripts in /usr/local/bin
            $create_symlinks         = $marathon::create_symlinks,
          # Create symlinks for the marathon binaries for easier access
            $haproxy_discovery       = $marathon::haproxy_discovery,
          # Create and manage the marathon service
            $manage_service          = $marathon::manage_service,
          # The marathon service's name
            $service_name            = $marathon::service_name,
          # The marathon options
            $options                 = $marathon::options,
          # Manage the firewall rules
            $manage_firewall         = $marathon::manage_firewall,
          # Manage the user that the tasks will be submitted as
            $manage_user             = $marathon::manage_user,
          # Whether or not the integrity of the archive should be verified
            $checksum                = $marathon::checksum,
          # Global haproxy options
            $haproxy_global_options  = $marathon::haproxy_global_options,
          # Default HAproxy options
            $haproxy_default_options = $marathon::haproxy_default_options
          ) inherits marathon {
      

Usage example:

```puppet
class {'marathon':
    manage_firewall => true,
    service_name    => 'marathon',
    manage_user     => true,
    user            => 'root'
}
```

Important:

Please see [The Marathon documentation](https://mesosphere.github.io/marathon/docs/command-line-flags.html) before you use to use this module.

Other notes

Pay attention when specifying the marathon options in Hiera, specially the ones requiring double quotes or special characters, such as in the example below.

    "ACCESS_CONTROL_ALLOW_ORIGIN":"\\\"*\\\"",

As you can see, since I am using the json Hiera backend, both the " and the \ need to be present within the service file. Due to the fact that within the template they are already within double quotes, I had to make sure I escape them propperly.

Have fun!