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)


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
# 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,
) {

  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'],
      }
    }
  }
}