|
5 | 5 | # == Parameters |
6 | 6 | # |
7 | 7 | # user - Database username. |
| 8 | +# auth_mechanism - Authentication mechanism. scram_sha_256 password verification is not supported. Defaults to 'scram_sha_1'. |
8 | 9 | # db_name - Database name. Defaults to $name. |
9 | 10 | # password_hash - Hashed password. Hex encoded md5 hash of "$username:mongo:$password". |
10 | 11 | # password - Plain text user password. This is UNSAFE, use 'password_hash' instead. |
|
13 | 14 | # |
14 | 15 | define mongodb::db ( |
15 | 16 | String $user, |
16 | | - String $db_name = $name, |
17 | | - Optional[Variant[String[1], Sensitive[String[1]]]] $password_hash = undef, |
18 | | - Optional[Variant[String[1], Sensitive[String[1]]]] $password = undef, |
19 | | - Array[String] $roles = ['dbAdmin'], |
20 | | - Integer[0] $tries = 10, |
| 17 | + Enum['scram_sha_1', 'scram_sha_256'] $auth_mechanism = 'scram_sha_1', |
| 18 | + String $db_name = $name, |
| 19 | + Optional[Variant[String[1], Sensitive[String[1]]]] $password_hash = undef, |
| 20 | + Optional[Variant[String[1], Sensitive[String[1]]]] $password = undef, |
| 21 | + Array[String] $roles = ['dbAdmin'], |
| 22 | + Integer[0] $tries = 10, |
21 | 23 | ) { |
22 | 24 | unless $facts['mongodb_is_master'] == 'false' { # lint:ignore:quoted_booleans |
23 | 25 | mongodb_database { $db_name: |
|
35 | 37 | fail("Parameter 'password_hash' or 'password' should be provided to mongodb::db.") |
36 | 38 | } |
37 | 39 |
|
| 40 | + if $auth_mechanism == 'scram_sha_256' { |
| 41 | + $password_config = { |
| 42 | + password => $password, |
| 43 | + } |
| 44 | + } else { |
| 45 | + $password_config = { |
| 46 | + password_hash => $hash, |
| 47 | + } |
| 48 | + } |
| 49 | + |
38 | 50 | mongodb_user { "User ${user} on db ${db_name}": |
39 | | - ensure => present, |
40 | | - password_hash => $hash, |
41 | | - username => $user, |
42 | | - database => $db_name, |
43 | | - roles => $roles, |
| 51 | + ensure => present, |
| 52 | + username => $user, |
| 53 | + database => $db_name, |
| 54 | + roles => $roles, |
| 55 | + auth_mechanism => $auth_mechanism, |
| 56 | + * => $password_config, |
44 | 57 | } |
45 | 58 | } |
46 | 59 | } |
0 commit comments