Puppet Class: mcmyadmin

Inherits:
mcmyadmin::params
Inherited by:
mcmyadmin::install
mcmyadmin::service
Defined in:
manifests/init.pp

Overview

Class mcmyadmin. See README.md for documentation

Parameters:

  • install_arch (Any) (defaults to: $mcmyadmin::params::install_arch)
  • password (Any) (defaults to: $mcmyadmin::params::password)
  • user (Any) (defaults to: $mcmyadmin::params::user)
  • group (Any) (defaults to: $mcmyadmin::params::group)
  • homedir (Any) (defaults to: $mcmyadmin::params::homedir)
  • install_dir (Any) (defaults to: $mcmyadmin::params::install_dir)
  • webserver_port (Any) (defaults to: $mcmyadmin::params::webserver_port)
  • webserver_addr (Any) (defaults to: $mcmyadmin::params::webserver_addr)
  • manage_java (Any) (defaults to: true)
  • manage_screen (Any) (defaults to: true)
  • manage_mono (Any) (defaults to: $mcmyadmin::params::manage_mono)
  • mono_pkg (Any) (defaults to: $mcmyadmin::params::mono_pkg)
  • screen_pkg (Any) (defaults to: $mcmyadmin::params::screen_pkg)
  • manage_curl (Any) (defaults to: $mcmyadmin::params::manage_curl)
  • curl_pkg (Any) (defaults to: $mcmyadmin::params::curl_pkg)
  • staging_dir (Any) (defaults to: $mcmyadmin::params::staging_dir)
  • mcma_install_args (Any) (defaults to: '')
  • mcma_run_args (Any) (defaults to: '')


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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'manifests/init.pp', line 2

class mcmyadmin (
  $install_arch   = $mcmyadmin::params::install_arch,
  $password       = $mcmyadmin::params::password,
  $user           = $mcmyadmin::params::user,
  $group          = $mcmyadmin::params::group,
  $homedir        = $mcmyadmin::params::homedir,
  $install_dir    = $mcmyadmin::params::install_dir,
  $webserver_port = $mcmyadmin::params::webserver_port,
  $webserver_addr = $mcmyadmin::params::webserver_addr,
  $manage_java    = true,
  $manage_screen  = true,
  $manage_mono    = $mcmyadmin::params::manage_mono,
  $mono_pkg       = $mcmyadmin::params::mono_pkg,
  $screen_pkg     = $mcmyadmin::params::screen_pkg,
  $manage_curl    = $mcmyadmin::params::manage_curl,
  $curl_pkg       = $mcmyadmin::params::curl_pkg,
  $staging_dir    = $mcmyadmin::params::staging_dir,
  $mcma_install_args  = '',
  $mcma_run_args      = '',
) inherits mcmyadmin::params {

  validate_string($install_arch)
  validate_string($password)
  validate_string($user)
  validate_string($group)
  validate_absolute_path($homedir)
  validate_absolute_path($install_dir)
  validate_string($webserver_port)
  validate_string($webserver_addr)
  validate_bool($manage_java)
  validate_bool($manage_screen)
  validate_bool($manage_mono)
  validate_string($mono_pkg)
  validate_string($mcma_install_args)
  validate_string($mcma_run_args)

  user { $user:
    ensure     => present,
    managehome => true,
    home       => $homedir,
    gid        => $group,
  }

  group { $group:
    ensure => present,
  }

  file { $homedir:
    ensure => directory,
    owner  => $user,
    group  => $group,
    mode   => '0755',
  }

  file { $install_dir:
    ensure => directory,
    owner  => $user,
    group  => $group,
    mode   => '0755',
  }

  if $manage_java {
    if $::osfamily == 'FreeBSD' {
      package { 'java/openjdk7':
        ensure => 'installed',
        before => Service['mcmyadmin']
      }
    }
    else {
      class { 'java':
        distribution => 'jre',
        before       => Service['mcmyadmin']
      }
    }
  }

  if $manage_screen {
    package { $screen_pkg:
      ensure => 'installed',
      before => Service['mcmyadmin']
    }
  }

  if $manage_mono {
    package { $mono_pkg:
      ensure => 'installed',
      before => Exec['mcmyadmin_install'],
    }
  }

  if $manage_curl {
    package { $curl_pkg:
      ensure => 'installed',
      before => Exec['mcmyadmin_install'],
    }
  }

  if $staging_dir {
    class { 'staging':
      path  => $staging_dir,
    }
  }

  anchor { 'mcmyadmin::begin': }->
  class { '::mcmyadmin::install': }->
  class { '::mcmyadmin::service': }->
  anchor { 'mcmyadmin::end': }

}