Puppet Class: cerebro::install

Defined in:
manifests/install.pp

Overview

Parameters:

  • version (Any) (defaults to: $::cerebro::version)
  • address (Any) (defaults to: $::cerebro::address)
  • port (Any) (defaults to: $::cerebro::port)
  • user (Any) (defaults to: $::cerebro::cerebro_user)
  • package_url (Any) (defaults to: $::cerebro::package_url)
  • sysconfig (Any) (defaults to: $::cerebro::sysconfig)
  • proxy_server (Any) (defaults to: $::cerebro::proxy_server)
  • proxy_type (Any) (defaults to: $::cerebro::proxy_type)


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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'manifests/install.pp', line 1

class cerebro::install (
  $version      = $::cerebro::version,
  $address      = $::cerebro::address,
  $port         = $::cerebro::port,
  $user         = $::cerebro::cerebro_user,
  $package_url  = $::cerebro::package_url,
  $sysconfig    = $::cerebro::sysconfig,
  $proxy_server = $::cerebro::proxy_server,
  $proxy_type   = $::cerebro::proxy_type,
) {
  $group = $user
  $real_package_url = pick($package_url, "https://github.com/lmenezes/cerebro/releases/download/v${version}/cerebro-${version}.tgz")

  file { "/opt/cerebro-${version}":
    ensure => directory,
    owner  => $user,
    group  => $group,
    mode   => '0755',
  }

  archive { "/tmp/cerebro-${version}.tgz":
    source       => $real_package_url,
    extract      => true,
    extract_path => '/opt',
    creates      => "/opt/cerebro-${version}/bin",
    cleanup      => true,
    user         => $user,
    group        => $group,
    proxy_server => $proxy_server,
    proxy_type   => $proxy_type,
    require      => File["/opt/cerebro-${version}"],
  }

  file { '/opt/cerebro':
    ensure  => 'link',
    target  => "/opt/cerebro-${version}",
    require => Archive["/tmp/cerebro-${version}.tgz"],
  }

  file { '/opt/cerebro/logs':
    ensure  => 'directory',
    owner   => $user,
    group   => $group,
    require => File['/opt/cerebro'],
  }

  file { '/var/log/cerebro':
    ensure => 'link',
    target => '/opt/cerebro/logs',
  }

  file { '/etc/cerebro':
    ensure => 'directory',
    owner  => $user,
    group  => $group,
  }

  file { '/var/cerebro':
    ensure => 'directory',
    owner  => $user,
    group  => $group,
  }

  file { '/var/run/cerebro':
    ensure => 'directory',
    owner  => $user,
    group  => $group,
  }

  file { '/etc/tmpfiles.d/cerebro.conf':
    content => template('cerebro/etc/tmpfiles.d/cerebro.conf.erb'),
  }


  if ($::operatingsystem == 'Amazon') {
    file { '/etc/init.d/cerebro':
      content => template('cerebro/etc/init.d/cerebro.erb'),
      mode    => '0744',
    }
  } else {
    ::systemd::unit_file { 'cerebro.service':
      content => template('cerebro/etc/systemd/system/cerebro.service.erb'),
    }
  }

}