Puppet Class: lcgdm

Defined in:
manifests/init.pp

Overview

Parameters:

  • dbuser (String)
  • dbpass (String)
  • domain (String)
  • volist (Array[String])
  • flavor (String) (defaults to: 'dpns')
  • dbflavor (String) (defaults to: 'mysql')
  • dbhost (Stdlib::Host) (defaults to: 'localhost')
  • dpm_db (String) (defaults to: 'dpm_db')
  • ns_db (String) (defaults to: 'cns_db')
  • mysqlrootpass (String) (defaults to: '')
  • coredump (Enum['yes', 'no']) (defaults to: 'no')
  • dbmanage (Boolean) (defaults to: true)
  • uid (Optional[Integer]) (defaults to: undef)
  • gid (Optional[Integer]) (defaults to: undef)


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

class lcgdm (
  String $dbuser,
  String $dbpass,
  String $domain,
  Array[String] $volist,
  String $flavor = 'dpns',
  String $dbflavor = 'mysql',
  Stdlib::Host $dbhost = 'localhost',
  String $dpm_db = 'dpm_db',
  String $ns_db = 'cns_db',
  String $mysqlrootpass = '',
  Enum['yes', 'no'] $coredump = 'no',
  Boolean $dbmanage = true,
  Optional[Integer] $uid = undef,
  Optional[Integer] $gid = undef,
) {
  Class[lcgdm::ns::service] -> Class[lcgdm::dpm::service]
  Class[lcgdm::ns::service] -> Class[lcgdm::ns::client]
  Class[lcgdm::dpm::service] -> Lcgdm::Ns::Domain <| |>
  Lcgdm::Ns::Domain <| |> -> Lcgdm::Ns::Vo <| |>

  #
  # Base configuration
  #
  if !defined(Class['lcgdm::base']) {
    if gid != undef {
      class { 'lcgdm::base':
        uid => $uid,
        gid => $gid,
      }
    } else {
      class { 'lcgdm::base':
        uid => $uid,
        gid => $uid,
      }
    }

  }

  #
  # In case the DB is not local we should configure the file /root/.my.cnf

  if $dbhost != 'localhost' and $dbhost != $::fqdn and $dbmanage and $dbflavor == 'mysql'{
    #check if root pass is empty
    if empty($mysqlrootpass ) {
      fail('mysqlrootpass parameter  should  not be empty')
    }
    #create the /root/.my.cnf
    file { '/root/.my.cnf':
      ensure  => present,
      mode    => '0655',
      content => template('lcgdm/mysql/my.cnf.erb'),
      before  => [ Class[lcgdm::ns::install], Class[lcgdm::dpm::install] ]
    }
  }

  #
  # Nameserver client and server configuration.
  #
  if gid != undef {
    class { 'lcgdm::ns':
      flavor   => $flavor,
      dbflavor => $dbflavor,
      dbuser   => $dbuser,
      dbpass   => $dbpass,
      dbhost   => $dbhost,
      ns_db    => $ns_db,
      coredump => $coredump,
      dbmanage => $dbmanage,
      uid      => $uid,
      gid      => $gid,
    }
  } else {
    class { 'lcgdm::ns':
      flavor   => $flavor,
      dbflavor => $dbflavor,
      dbuser   => $dbuser,
      dbpass   => $dbpass,
      dbhost   => $dbhost,
      ns_db    => $ns_db,
      coredump => $coredump,
      dbmanage => $dbmanage,
      uid      => $uid,
      gid      => $uid,
    }
  }

  #
  # DPM daemon configuration.
  #
  class { 'lcgdm::dpm':
    dbflavor => $dbflavor,
    dbuser   => $dbuser,
    dbpass   => $dbpass,
    dbhost   => $dbhost,
    dpm_db   => $dpm_db,
    coredump => $coredump,
    dbmanage => $dbmanage,
  }

  #
  # Create path for domain and VOs to be enabled.
  #
  lcgdm::ns::domain { $domain: }

  lcgdm::ns::vo { $volist: domain => $domain, }
}