Puppet Class: mesos::install

Defined in:
manifests/install.pp

Overview

Class: mesos::install

This class manages Mesos package installation.

Parameters:

ensure
  • ‘present’ for installing any version of Mesos

'latest' or e.g. '0.15' for specific version

Sample Usage: is not meant for standalone usage, class is required by ‘mesos::master’ and ‘mesos::slave’

Parameters:

  • ensure (String) (defaults to: 'present')
  • repo_source (Optional[Variant[String,Hash]]) (defaults to: undef)
  • manage_python (Boolean) (defaults to: false)
  • python_package (String) (defaults to: 'python')
  • remove_package_services (Boolean) (defaults to: false)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'manifests/install.pp', line 12

class mesos::install(
  String                          $ensure                  = 'present',
  Optional[Variant[String,Hash]]  $repo_source             = undef,
  Boolean                         $manage_python           = false,
  String                          $python_package          = 'python',
  Boolean                         $remove_package_services = false,
) {
  # 'ensure_packages' requires puppetlabs/stdlib
  #
  # linux containers are now implemented natively
  # with usage of cgroups, requires kernel >= 2.6.24
  #
  # Python is required for web GUI (mesos could be build without GUI)
  if $manage_python {
    ensure_resource('package', [$python_package],
      {'ensure' => 'present', 'require' => Package['mesos']}
    )
  }

  class {'mesos::repo':
    source => $repo_source,
  }

  # a debian (or other binary package) must be available,
  # see https://github.com/deric/mesos-deb-packaging
  # for Debian packaging
  package { 'mesos':
    ensure  => $ensure,
    require => Class['mesos::repo']
  }

  if ($remove_package_services and $::osfamily == 'redhat' and $::operatingsystemmajrelease == '6') {
    file { [
      '/etc/init/mesos-master.conf', '/etc/init/mesos-slave.conf'
    ]:
      ensure  => absent,
      require => Package['mesos'],
    }
  }
}