Puppet Class: psick::mongo::puppetlabs

Defined in:
manifests/mongo/puppetlabs.pp

Overview

Parameters:

  • ensure (String) (defaults to: $::psick::mongo::ensure)
  • key (Variant[Undef,String]) (defaults to: $::psick::mongo::key)
  • replset (Variant[Undef,String]) (defaults to: $::psick::mongo::replset)
  • default_password (Variant[Undef,String]) (defaults to: $::psick::mongo::default_password)
  • replset_arbiter (Variant[Undef,String]) (defaults to: $::psick::mongo::replset_arbiter)
  • replset_members (Variant[Undef,Array]) (defaults to: $::psick::mongo::replset_members)
  • shardsvr (Variant[Undef,Boolean]) (defaults to: $::psick::mongo::shardsvr)
  • databases (Variant[Undef,Hash]) (defaults to: $::psick::mongo::databases)
  • hostnames (Variant[Undef,Hash]) (defaults to: $::psick::mongo::hostnames)
  • manage (Boolean) (defaults to: $::psick::manage)
  • noop_manage (Boolean) (defaults to: $::psick::noop_manage)
  • noop_value (Boolean) (defaults to: $::psick::noop_value)


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
# File 'manifests/mongo/puppetlabs.pp', line 3

class psick::mongo::puppetlabs (
  String                 $ensure           = $::psick::mongo::ensure,
  Variant[Undef,String]  $key              = $::psick::mongo::key,
  Variant[Undef,String]  $replset          = $::psick::mongo::replset,
  Variant[Undef,String]  $default_password = $::psick::mongo::default_password,
  Variant[Undef,String]  $replset_arbiter  = $::psick::mongo::replset_arbiter,
  Variant[Undef,Array]   $replset_members  = $::psick::mongo::replset_members,
  Variant[Undef,Boolean] $shardsvr         = $::psick::mongo::shardsvr,
  Variant[Undef,Hash]    $databases        = $::psick::mongo::databases,
  Variant[Undef,Hash]    $hostnames        = $::psick::mongo::hostnames,
  Boolean $manage                          = $::psick::manage,
  Boolean $noop_manage                     = $::psick::noop_manage,
  Boolean $noop_value                      = $::psick::noop_value,
) {
  if $manage {
    if $noop_manage {
      noop($noop_value)
    }

    class { '::mongodb::globals': manage_package_repo => true }
    -> class { '::mongodb::client': }
    -> class { '::mongodb::server':
      shardsvr        => $shardsvr,
      replset         => $replset,
      replset_members => $replset_members,
      bind_ip         => [ '0.0.0.0' ],
      auth            => true,
      keyfile         => '/etc/mongo.key',
      key             => $key,
    }

    # Quick and dirty TODO Automate mongo servers lookup
    if $hostnames {
      $hostnames.each|$ho,$ho_options| {
        host { $ho:
          ip     => $ho_options['ip'],
          before => Class['mongodb::server'],
        }
      }
    }
    if $databases {
      $databases.each|$db,$db_options| {
        $default_options = {
          user          => "${db}_user",
          roles         => [ 'readWrite' ],
          password_hash => mongodb_password("${db}_user",pick_default($db_options['password'],$default_password)),
          tries         => 10,
        }
        $real_options = $db_options + $default_options
        mongodb_database { $db:
          ensure  => 'present',
          tries   => $real_options['tries'],
          require => Class['mongodb::server'],
        }
        mongodb_user { $real_options['user']:
          ensure        => 'present',
          database      => $db,
          tries         => $real_options['tries'],
          roles         => $real_options['roles'],
          password_hash => $real_options['password_hash'],
          require       => Class['mongodb::server'],
        }
      }
    }
  }
}