This module was designed for Puppet versions 2 and 3. It should work also on Puppet 4 but doesn't use any of its features.
The current Puppet 3 compatible codebase is no longer actively maintained by example42.
Still, Pull Requests that fix bugs or introduce backwards compatible features will be accepted.
This module installs, manages and configures mongodb.
The module is based on stdmod naming standards version 0.9.0.
Refer to http://github.com/stdmod/ for complete documentation on the common parameters.
To install the package provided by the module just include it:
include mongodb
The main class arguments can be provided either via Hiera (from Puppet 3.x) or direct parameters:
class { 'mongodb':
parameter => value,
}
The module provides a generic define to manage any mongodb configuration file:
mongodb::conf { 'sample.conf':
content => '# Test',
}
To create and manage users:
mongodb::user { 'joe':
password => 'S$cr£t',
}
A common way to use this module involves the management of the main configuration file via a custom template (provided in a custom site module):
class { 'mongodb':
config_file_template => 'site/mongodb/mongodb.conf.erb',
}
You can write custom templates that use setting provided but the config_file_options_hash paramenter
class { 'mongodb':
config_file_template => 'site/mongodb/mongodb.conf.erb',
config_file_options_hash => {
opt => 'value',
opt2 => 'value2',
},
}
Use custom source (here an array) for main configuration file. Note that template and source arguments are alternative.
class { 'mongodb':
config_file_source => [ "puppet:///modules/site/mongodb/mongodb.conf-${hostname}" ,
"puppet:///modules/site/mongodb/mongodb.conf" ],
}
Use custom source directory for the whole configuration directory, where present.
class { 'mongodb':
config_dir_source => 'puppet:///modules/site/mongodb/conf/',
}
Use custom source directory for the whole configuration directory and purge all the local files that are not on the dir. Note: This option can be used to be sure that the content of a directory is exactly the same you expect, but it is desctructive and may remove files.
class { 'mongodb':
config_dir_source => 'puppet:///modules/site/mongodb/conf/',
config_dir_purge => true, # Default: false.
}
Use custom source directory for the whole configuration dir and define recursing policy.
class { 'mongodb':
config_dir_source => 'puppet:///modules/site/mongodb/conf/',
config_dir_recursion => false, # Default: true.
}
Provide an hash of files resources to be created with mongodb::conf.
class { 'mongodb':
conf_hash => {
'mongodb.conf' => {
template => 'site/mongodb/mongodb.conf',
},
'mongodb.other.conf' => {
template => 'site/mongodb/mongodb.other.conf',
},
},
}
Do not trigger a service restart when a config file changes.
class { 'mongodb':
config_dir_notify => '', # Default: Service[mongodb]
}
Install only the mongodb client (by defalut both server and client are installed
class { 'mongodb':
server_package_name => '',
}
Use 10gen repository
class { 'mongodb':
repo_class => 'mongodb::repo::10gen',
}
This is tested on these OS:
Pull requests (PR) and bug reports via GitHub are welcomed.
When submitting PR please follow these quidelines:
When submitting bug report please include or link: