Puppet Class: maestro::agent::package

Inherits:
maestro::params
Defined in:
manifests/agent/package.pp

Overview

Parameters:

  • type (Any) (defaults to: $maestro::agent::package_type)
  • repo (Any) (defaults to: $maestro::agent::repo)
  • version (Any) (defaults to: $maestro::agent::agent_version)
  • srcdir (Any) (defaults to: $maestro::params::srcdir)
  • basedir (Any) (defaults to: $maestro::agent::basedir)
  • agent_user (Any) (defaults to: $maestro::agent::agent_user)
  • agent_group (Any) (defaults to: $maestro::agent::agent_group)
  • agent_user_home (Any) (defaults to: $maestro::agent::agent_user_home)


1
2
3
4
5
6
7
8
9
10
11
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
52
53
54
55
56
57
58
59
60
61
# File 'manifests/agent/package.pp', line 1

class maestro::agent::package(
  $type = $maestro::agent::package_type,
  $repo = $maestro::agent::repo,
  $version = $maestro::agent::agent_version,
  $srcdir = $maestro::params::srcdir,
  $basedir = $maestro::agent::basedir,
  $agent_user = $maestro::agent::agent_user,
  $agent_group = $maestro::agent::agent_group,
  $agent_user_home = $maestro::agent::agent_user_home) inherits maestro::params {

  $timestamp_version = $version # version is a release
  $base_version = snapshotbaseversion($version)

  if $type == 'tarball' or $type == 'rpm' {
    # in RPM agents >= 2.1.0 this is only needed to ensure the owner and group
    file { '/var/local':
      ensure  => directory,
    } ->
    file { [$agent_user_home,"${agent_user_home}/logs","${agent_user_home}/conf","${agent_user_home}/tmp"]:
      ensure  => directory,
      owner   => $agent_user,
      group   => $agent_group,
    }
  }

  case $type {

    'tarball': {
      anchor { 'maestro::agent::package::begin': } -> Class['maestro::agent::package::tarball'] -> anchor { 'maestro::agent::package::end': }

      ensure_resource('file', $srcdir, {'ensure' => 'directory' })

      class { 'maestro::agent::package::tarball':
        repo              => $repo,
        timestamp_version => $timestamp_version,
        base_version      => $base_version,
        srcdir            => $srcdir,
        basedir           => $basedir,
        agent_user        => $agent_user,
        agent_group       => $agent_group,
        agent_user_home   => $agent_user_home,
      }
    }
    'rpm': {
      anchor { 'maestro::agent::package::begin': } -> Class['maestro::agent::package::rpm'] -> anchor { 'maestro::agent::package::end': }

      class { 'maestro::agent::package::rpm':
        version => $version,
      }
    }
    'windows': {
      anchor { 'maestro::agent::package::begin': } -> Class['maestro::agent::package::windows'] -> anchor { 'maestro::agent::package::end': }

      class { 'maestro::agent::package::windows': }
    }
    default: {
      fail("Invalid Maestro package type: ${type}")
    }
  }

}