Puppet Class: mongodb::globals

Inherited by:
mongodb::params
mongodb::client::params
mongodb::mongos::params
Defined in:
manifests/globals.pp

Overview

Class for setting cross-class global overrides. See README.md for more details.

Parameters:

  • server_package_name (Any) (defaults to: undef)
  • client_package_name (Any) (defaults to: undef)
  • mongod_service_manage (Any) (defaults to: undef)
  • service_enable (Any) (defaults to: undef)
  • service_ensure (Any) (defaults to: undef)
  • service_name (Any) (defaults to: undef)
  • service_provider (Any) (defaults to: undef)
  • service_status (Any) (defaults to: undef)
  • user (Any) (defaults to: undef)
  • group (Any) (defaults to: undef)
  • ipv6 (Any) (defaults to: undef)
  • bind_ip (Any) (defaults to: undef)
  • version (Any) (defaults to: fact('os.distro.codename') ? { # Debian 10 doesn't provide mongodb 3.6. 'buster' => '4.4.8', default => undef)
  • manage_package_repo (Any) (defaults to: fact('os.distro.codename') ? { # Debian 10 doesn't provide mongodb packages. So manage it! 'buster' => true, default => undef)
  • manage_package (Any) (defaults to: undef)
  • repo_proxy (Any) (defaults to: undef)
  • proxy_username (Any) (defaults to: undef)
  • proxy_password (Any) (defaults to: undef)
  • repo_location (Any) (defaults to: undef)
  • use_enterprise_repo (Any) (defaults to: undef)
  • pidfilepath (Any) (defaults to: undef)
  • pidfilemode (Any) (defaults to: undef)
  • manage_pidfile (Any) (defaults to: undef)


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

class mongodb::globals (
  $server_package_name   = undef,
  $client_package_name   = undef,

  $mongod_service_manage = undef,
  $service_enable        = undef,
  $service_ensure        = undef,
  $service_name          = undef,
  $service_provider      = undef,
  $service_status        = undef,

  $user                  = undef,
  $group                 = undef,
  $ipv6                  = undef,
  $bind_ip               = undef,

  $version               = fact('os.distro.codename') ? { # Debian 10 doesn't provide mongodb 3.6.
    'buster' => '4.4.8',
    default  => undef
  },
  $manage_package_repo   = fact('os.distro.codename') ? { # Debian 10 doesn't provide mongodb packages. So manage it!
    'buster' => true,
    default  => undef
  },
  $manage_package        = undef,
  $repo_proxy            = undef,
  $proxy_username        = undef,
  $proxy_password        = undef,

  $repo_location         = undef,
  $use_enterprise_repo   = undef,

  $pidfilepath           = undef,
  $pidfilemode           = undef,
  $manage_pidfile        = undef,
) {
  if $use_enterprise_repo {
    $edition = 'enterprise'
  } else {
    $edition = 'org'
  }

  # Setup of the repo only makes sense globally, so we are doing it here.
  case $facts['os']['family'] {
    'RedHat', 'Linux', 'Suse': {
      # For RedHat, Linux and Suse family: if manage_package_repo is set at undef that include mongodb::repo
      if $manage_package_repo != false {
        class { 'mongodb::repo':
          ensure              => present,
          version             => pick($version, '3.6'),
          use_enterprise_repo => $use_enterprise_repo,
          repo_location       => $repo_location,
          proxy               => $repo_proxy,
        }
      }
    }
    default: {
      # For other (Debian) family: if manage_package_repo is set at undef that not include mongodb::repo
      if $manage_package_repo {
        if $use_enterprise_repo == true and $version == undef {
          fail('You must set mongodb::globals::version when mongodb::globals::use_enterprise_repo is true')
        }

        class { 'mongodb::repo':
          ensure              => present,
          version             => $version,
          use_enterprise_repo => $use_enterprise_repo,
          repo_location       => $repo_location,
          proxy               => $repo_proxy,
        }
      }
    }
  }
}