Defined Type: mongodb::db

Defined in:
manifests/db.pp

Overview

Class: mongodb::db

Class for creating mongodb databases and users.

Parameters

user - Database username.
db_name - Database name. Defaults to $name.
password_hash - Hashed password. Hex encoded md5 hash of "$username:mongo:$password".
password - Plain text user password. This is UNSAFE, use 'password_hash' instead.
roles (default: ['dbAdmin']) - array with user roles.
tries (default: 10) - The maximum amount of two second tries to wait MongoDB startup.

Parameters:

  • user (Any)
  • db_name (Any) (defaults to: $name)
  • password_hash (Any) (defaults to: false)
  • password (Any) (defaults to: false)
  • roles (Any) (defaults to: ['dbAdmin'])
  • tries (Any) (defaults to: 10)


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

define mongodb::db (
  $user,
  $db_name       = $name,
  $password_hash = false,
  $password      = false,
  $roles         = ['dbAdmin'],
  $tries         = 10,
) {

  mongodb_database { $db_name:
    ensure => present,
    tries  => $tries
  }

  if $password_hash {
    $hash = $password_hash
  } elsif $password {
    $hash = mongodb_password($user, $password)
  } else {
    fail("Parameter 'password_hash' or 'password' should be provided to mongodb::db.")
  }

  mongodb_user { "User ${user} on db ${db_name}":
    ensure        => present,
    password_hash => $password_hash,
    password      => $password,
    username      => $user,
    database      => $db_name,
    roles         => $roles,
    require       => Mongodb_database[$db_name],
  }

}