Version information
This version is compatible with:
- Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.7.0 < 6.0.0
- , , ,
This module has been deprecated by its author since Oct 27th 2017.
The author has suggested puppet-mongodb as its replacement.
Start using this module
Documentation
mongodb puppet module
Table of Contents
- Overview
- Module Description - What does the module do?
- Setup - The basics of getting started with mongodb
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Overview
Installs MongoDB on RHEL/Ubuntu/Debian from OS repo, or alternatively from 10gen repository installation documentation.
Deprecation Warning
This module is still in beta which means the API is subject to change in backwards incompatible ways. If your project depends on an old API, please pin your dependencies to the necessary version to ensure your environments don't break.
The current module design is undergoing review for potential 1.0 release. We welcome any feedback with regard to the APIs and patterns used in this release.
Module Description
The MongoDB module manages mongod server installation and configuration of the mongod daemon. For the time being it supports only a single MongoDB server instance, without sharding functionality.
For the 0.5 release, the MongoDB module now supports database and user types.
For the 0.6 release, the MongoDB module now supports basic replicaset features (initiating a replicaset and adding members, but without specific options).
Setup
What MongoDB affects
- MongoDB package.
- MongoDB configuration files.
- MongoDB service.
- MongoDB client.
- MongoDB sharding support (mongos)
- 10gen/mongodb apt/yum repository.
Beginning with MongoDB
If you just want a server installation with the default options you can run
include '::mongodb::server'
. If you need to customize configuration
options you need to do the following:
class {'::mongodb::server':
port => 27018,
verbose => true,
}
For Red Hat family systems, the client can be installed in a similar fashion:
class {'::mongodb::client':}
Note that for Debian/Ubuntu family systems the client is installed with the server. Using the client class will by default install the server.
If one plans to configure sharding for a Mongo deployment, the module offer
the mongos
installation. mongos
can be installed the following way :
class {'::mongodb::mongos' :
configdb => ['configsvr1.example.com:27018'],
}
Although most distros come with a prepacked MongoDB server we recommend to use the 10gen/MongoDB software repository, because most of the current OS packages are outdated and not appropriate for a production environment. To install MongoDB from 10gen repository:
class {'::mongodb::globals':
manage_package_repo => true,
}->
class {'::mongodb::client': } ->
class {'::mongodb::server': }
If you don't want to use the 10gen/MongoDB software repository or the OS packages, you can point the module to a custom one. To install MongoDB from a custom repository:
class {'::mongodb::globals':
manage_package_repo => true,
repo_location => 'http://example.com/repo'
}->
class {'::mongodb::server': }->
class {'::mongodb::client': }
Having a local copy of MongoDB repository (that is managed by your private modules)
you can still enjoy the charms of mongodb::params
that manage packages.
To disable managing of repository, but still enable managing packages:
class {'::mongodb::globals':
manage_package_repo => false,
manage_package => true,
}->
class {'::mongodb::server': }->
class {'::mongodb::client': }
Usage
Most of the interaction for the server is done via mongodb::server
. For
more options please have a look at mongodb::server.
Also in this version we introduced mongodb::globals
, which is meant more
for future implementation, where you can configure the main settings for
this module in a global way, to be used by other classes and defined resources.
On its own it does nothing.
Create MongoDB database
To install MongoDB server, create database "testdb" and user "user1" with password "pass1".
class {'::mongodb::server':
auth => true,
}
mongodb::db { 'testdb':
user => 'user1',
password_hash => 'a15fbfca5e3a758be80ceaf42458bcd8',
}
Parameter 'password_hash' is hex encoded md5 hash of "user1:mongo:pass1". Unsafe plain text password could be used with 'password' parameter instead of 'password_hash'.
Reference
Classes
Public classes
mongodb::server
: Installs and configure MongoDBmongodb::client
: Installs the MongoDB client shell (for Red Hat family systems)mongodb::globals
: Configure main settings in a global waymongodb::mongos
: Installs and configure Mongos server (for sharding support)
Private classes
mongodb::repo
: Manage 10gen/MongoDB software repositorymongodb::repo::apt
: Manage Debian/Ubuntu apt 10gen/MongoDB repositorymongodb::repo::yum
: Manage Redhat/CentOS apt 10gen/MongoDB repositorymongodb::server::config
: Configures MongoDB configuration filesmongodb::server::install
: Install MongoDB software packagesmongodb::server::service
: Manages servicemongodb::client::install
: Installs the MongoDB client software packagemongodb::mongos::config
: Configures Mongos configuration filesmongodb::mongos::install
: Install Mongos software packagesmongodb::mongos::service
: Manages Mongos service
Class: mongodb::globals
Note: most server specific defaults should be overridden in the mongodb::server
class. This class should only be used if you are using a non-standard OS or
if you are changing elements such as version
or manage_package_repo
that
can only be changed here.
This class allows you to configure the main settings for this module in a global way, to be used by the other classes and defined resources. On its own it does nothing.
server_package_name
This setting can be used to override the default MongoDB server package name. If not specified, the module will use whatever package name is the default for your OS distro.
service_name
This setting can be used to override the default MongoDB service name. If not specified, the module will use whatever service name is the default for your OS distro.
service_provider
This setting can be used to override the default MongoDB service provider. If not specified, the module will use whatever service provider is the default for your OS distro.
service_status
This setting can be used to override the default status check command for your MongoDB service. If not specified, the module will use whatever service name is the default for your OS distro.
mongod_service_manage
This setting can be used to override the default management of the mongod service. By default the module will manage the mongod process.
mongos_service_manage
This setting can be used to override the default management of the mongos service. By default the module will manage the mongos process.
user
This setting can be used to override the default MongoDB user and owner of the service and related files in the file system. If not specified, the module will use the default for your OS distro.
group
This setting can be used to override the default MongoDB user group to be used for related files in the file system. If not specified, the module will use the default for your OS distro.
ipv6
This setting is used to configure MongoDB to turn on ipv6 support. If not specified and ipv6 address is passed to MongoDB bind_ip it will just fail.
bind_ip
This setting can be used to configure MonogDB process to bind to and listen for connections from applications on this address. If not specified, the module will use the default for your OS distro. Note: This value should be passed as an array.
use_enterprise_repo
When manage_package_repo
is set to true, this setting indicates if it will
use the Community Edition (false, the default) or the Enterprise one (true).
version
The version of MonogDB to install/manage. This is a simple way of providing a specific version such as '2.2' or '2.4' for example. If not specified, the module will use the default for your OS distro.
repo_location
This setting can be used to override the default MongoDB repository location. If not specified, the module will use the default repository for your OS distro.
repo_proxy
This will allow you to set a proxy for your repository in case you are behind a corporate firewall. Currently this is only supported with yum repositories
proxy_username
This sets the username for the proxyserver, should authentication be required
proxy_password
This sets the password for the proxyserver, should authentication be required
Class: mongodb::server
Most of the parameters manipulate the mongod.conf file.
For more details about configuration parameters consult the MongoDB Configuration File Options.
ensure
Used to ensure that the package is installed and the service is running, or that the package is absent/purged and the service is stopped. Valid values are true/false/present/absent/purged.
config
Path of the config file. If not specified, the module will use the default for your OS distro.
dbpath
Set this value to designate a directory for the mongod instance to store it's data. If not specified, the module will use the default for your OS distro.
pidfilepath
Specify a file location to hold the PID or process ID of the mongod process. If not specified, the module will use the default for your OS distro.
manage_pidfile
Should puppet create the pidfile. Mondod 6.2.10 will not start if pidfile exists
logpath
Specify the path to a file name for the log file that will hold all diagnostic logging information. Unless specified, mongod will output all log information to the standard output.
ipv6
This setting has to be true to configure MongoDB to turn on ipv6 support. If not specified and ipv6 address is passed to MongoDB bind_ip it will just fail.
bind_ip
Set this option to configure the mongod or mongos process to bind to and listen for connections from applications on this address. If not specified, the module will use the default for your OS distro. Example: bind_ip=['127.0.0.1', '192.168.0.3'] Note: bind_ip accepts an array as a value.
logappend
Set to true to add new entries to the end of the logfile rather than overwriting the content of the log when the process restarts. Default: True
system_logrotate
Set to reopen for mongo to close a log file then reopen it so that logrotations handled outside of mongo perform as expected. Default: undef
fork
Set to true to fork server process at launch time. The default setting depends on the operating system.
port
Specifies a TCP port for the server instance to listen for client connections. Default: 27017
journal
Set to true to enable operation journaling to ensure write durability and data consistency. Default: on 64-bit systems true and on 32-bit systems false
nojournal
Set nojournal = true to disable durability journaling. By default, mongod enables journaling in 64-bit versions after v2.0. Default: on 64-bit systems false and on 32-bit systems true
Note: You must use journal to enable journaling on 32-bit systems.
smallfiles
Set to true to modify MongoDB to use a smaller default data file size. Specifically, smallfiles reduces the initial size for data files and limits them to 512 megabytes. Default: false
cpu
Set to true to force mongod to report every four seconds CPU utilization and the amount of time that the processor waits for I/O operations to complete (i.e. I/O wait.) Default: false
auth
Set to true to enable database authentication for users connecting from remote hosts. If no users exist, the localhost interface will continue to have access to the database until you create the first user. Default: false
noauth
Disable authentication. Currently the default. Exists for future compatibility and clarity.
verbose
Increases the amount of internal reporting returned on standard output or in
the log file generated by logpath
. Default: false
verbositylevel
MongoDB has the following levels of verbosity: v, vv, vvv, vvvv and vvvvv. Default: None
objcheck
Forces the mongod to validate all requests from clients upon receipt to ensure that clients never insert invalid documents into the database. Default: on v2.4 default to true and on earlier version to false
quota
Set to true to enable a maximum limit for the number of data files each database can have. The default quota is 8 data files, when quota is true. Default: false
quotafiles
Modify limit on the number of data files per database. This option requires the
quota
setting. Default: 8
diaglog
Creates a very verbose diagnostic log for troubleshooting and recording various errors. Valid values: 0, 1, 2, 3 and 7. For more information please refer to MongoDB Configuration File Options.
directoryperdb
Set to true to modify the storage pattern of the data directory to store each database’s files in a distinct folder. Default: false
profile
Modify this value to changes the level of database profiling, which inserts
information about operation performance into output of mongod or the
log file if specified by logpath
.
maxconns
Specifies a value to set the maximum number of simultaneous connections that MongoDB will accept. Default: depends on system (i.e. ulimit and file descriptor) limits. Unless set, MongoDB will not limit its own connections.
oplog_size
Specifies a maximum size in megabytes for the replication operation log (e.g. oplog.) mongod creates an oplog based on the maximum amount of space available. For 64-bit systems, the oplog is typically 5% of available disk space.
nohints
Ignore query hints. Default: None
nohttpinterface
Set to true to disable the HTTP interface. This command will override the rest and disable the HTTP interface if you specify both. Default: false
noscripting
Set noscripting = true to disable the scripting engine. Default: false
notablescan
Set notablescan = true to forbid operations that require a table scan. Default: false
noprealloc
Set noprealloc = true to disable the preallocation of data files. This will shorten the start up time in some cases, but can cause significant performance penalties during normal operations. Default: false
nssize
Use this setting to control the default size for all newly created namespace files (i.e .ns). Default: 16
mms_token
MMS token for mms monitoring. Default: None
mms_name
MMS identifier for mms monitoring. Default: None
mms_interval
MMS interval for mms monitoring. Default: None
configsvr
Use this setting to enable config server mode for mongod.
shardsvr
Use this setting to enable shard server mode for mongod.
replset
Use this setting to configure replication with replica sets. Specify a replica set name as an argument to this set. All hosts must have the same set name.
replset_members
An array of member hosts for the replica set.
Mutually exclusive with replset_config
param.
replset_config
A hash that is used to configure the replica set.
Mutually exclusive with replset_members
param.
class mongodb::server {
replset => 'rsmain',
replset_config => { 'rsmain' => { ensure => present, members => ['host1:27017', 'host2:27017', 'host3:27017'] } }
}
rest
Set to true to enable a simple REST interface. Default: false
quiet
Runs the mongod or mongos instance in a quiet mode that attempts to limit the amount of output. This option suppresses : "output from database commands, including drop, dropIndexes, diagLogging, validate, and clean", "replication activity", "connection accepted events" and "connection closed events". Default: false
For production systems this option is not recommended as it may make tracking problems during particular connections much more difficult.
slowms
Sets the threshold for mongod to consider a query “slow” for the database profiler. Default: 100 ms
keyfile
Specify the path to a key file to store authentication information. This option is only useful for the connection between replica set members. Default: None
key
Specify the key contained within the keyfile. This option is only useful for the connection between replica set members. Default: None
master
Set to true to configure the current instance to act as master instance in a replication configuration. Default: False Note: deprecated – use replica sets
set_parameter
Specify extra configuration file parameters (i.e. textSearchEnabled=true). Default: None
syslog
Sends all logging output to the host’s syslog system rather than to standard output or a log file. Default: None Important: You cannot use syslog with logpath.
slave
Set to true to configure the current instance to act as slave instance in a replication configuration. Default: false Note: deprecated – use replica sets
only
Used with the slave option, only specifies only a single database to replicate. Default: <> Note: deprecated – use replica sets
source
Used with the slave setting to specify the master instance from which this slave instance will replicate. Default: <> Note: deprecated – use replica sets
ssl
Set to true to enable ssl. Default: <> Important: You need to have ssl_key set as well, and the file needs to pre-exist on node. If you wish to use certificate validation, ssl_ca must also be set.
ssl_key
Default: <>
ssl_ca
Default: <>
ssl_weak_cert
Set to true to disable mandatory SSL client authentication Default: False
service_manage
Whether or not the MongoDB service resource should be part of the catalog. Default: true
storage_engine
Only needed for MongoDB 3.x versions, where it's possible to select the 'wiredTiger' engine in addition to the default 'mmapv1' engine. If not set, the config is left out and mongo will default to 'mmapv1'. You should not set this for MongoDB versions < 3.x
restart
Specifies whether the service should be restarted on config changes. Default: 'true'
create_admin
Allows to create admin user for admin database. Redefine these parameters if needed:
admin_username
Administrator user name
admin_password
Administrator user password
admin_roles
Administrator user roles
store_creds
Store admin credentials in mongorc.js file. Uses with create_admin
parameter
handle_creds
Set this to false to avoid having puppet handle .mongorc.js in case you wish to deliver it by other means. This is needed for facts to work if you have auth set to true. Default is true.
Class: mongodb::mongos
class. This class should only be used if you want to implement sharding within your mongodb deployment.
This class allows you to configure the mongos daemon (responsible for routing) on your platform.
ensure
Used to ensure that the package is installed and the service is running, or that the package is absent/purged and the service is stopped. Valid values are true/false/present/absent/purged.
config
Path of the config file. If not specified, the module will use the default for your OS distro.
config_content
Config content if the default doesn't match one needs.
config_template
Path to the config template if the default doesn't match one needs.
configdb
Array of the config servers IP addresses the mongos should connect to.
service_manage
Whether or not the MongoDB sharding service resource should be part of the catalog. Default: true
service_name
This setting can be used to override the default Mongos service name. If not specified, the module will use whatever service name is the default for your OS distro.
service_provider
This setting can be used to override the default Mongos service provider. If not specified, the module will use whatever service provider is the default for your OS distro.
service_status
This setting can be used to override the default status check command for your Mongos service. If not specified, the module will use whatever service name is the default for your OS distro.
service_enable
This setting can be used to specify if the service should be enable at boot
service_ensure
This setting can be used to specify if the service should be running
package_ensure
This setting can be used to specify if puppet should install the package or not
package_name
This setting can be used to specify the name of the package that should be installed. If not specified, the module will use whatever service name is the default for your OS distro.
restart
Specifies whether the service should be restarted on config changes. Default: 'true'
Definitions
Definition: mongodb:db
Creates database with user. Resource title used as database name.
user
Name of the user for database
password_hash
Hex encoded md5 hash of "$username:mongo:$password". For more information please refer to MongoDB Authentication Process.
password
Plain-text user password (will be hashed)
roles
Array with user roles. Default: ['dbAdmin']
Providers
Provider: mongodb_database
'mongodb_database' can be used to create and manage databases within MongoDB.
mongodb_database { testdb:
ensure => present,
tries => 10,
require => Class['mongodb::server'],
}
tries
The maximum amount of two second tries to wait MongoDB startup. Default: 10
Provider: mongodb_user
'mongodb_user' can be used to create and manage users within MongoDB database.
Note: if replica set is enabled, replica initialization has to come before any user operations.
mongodb_user { testuser:
name => 'testuser',
ensure => present,
password_hash => mongodb_password('testuser', 'p@ssw0rd'),
database => testdb,
roles => ['readWrite', 'dbAdmin'],
tries => 10,
require => Class['mongodb::server'],
}
username
Name of the mongodb user.
#####password_hash
Hex encoded md5 hash of "$username:mongo:$password". Only available on MongoDB 3.0 and later.
#####password
Plaintext password of the user.
database
Name of database. It will be created, if not exists.
roles
Array with user roles. Default: ['dbAdmin']
tries
The maximum amount of two second tries to wait MongoDB startup. Default: 10
Provider: mongodb_replset
'mongodb_replset' can be used to create and manage MongoDB replicasets.
mongodb_replset { rsmain:
ensure => present,
members => ['host1:27017', 'host2:27017', 'host3:27017']
}
Ideally the mongodb_replset
resource will be declared on the initial
desired primary node (arbitrarily the first of the list) and this node will be
processed once the secondary nodes are up. This will ensure all the nodes are
in the first configuration of the replicaset, else it will require running
puppet again to add them.
members
Array of 'host:port' of the replicaset members.
It currently only adds members without options.
Provider: mongodb_shard
'mongodb_shard' can be used to create and manage MongoDB shards. Note: Removing a shard is not yet supported. Shard can only be added.
mongodb_shard { 'rsmain':
member => 'rsmain/host1:27017',
keys => [{'rsmain.foo' => {'name' => 1}}],
}
member
Member of the shard in the form;
- [hostname]
- [hostname]:[port]
- [replica-set-name]/[hostname]
- [replica-set-name]/[hostname]:port
keys
Sharding keys for a specific database. This variable should be an array of sharding keys.
Limitations
This module has been tested on:
- Debian 7.* (Wheezy)
- Debian 6.* (squeeze)
- Ubuntu 12.04.2 (precise)
- Ubuntu 10.04.4 LTS (lucid)
- RHEL 5/6/7
- CentOS 5/6/7
For a full list of tested operating systems please have a look at the .nodeset.xml definition.
This module should support service_ensure
separate from the ensure
value on Class[mongodb::server]
but it does not yet.
Apt module support
While this module supports both 1.x and 2.x versions of the puppetlabs-apt module, it does not support puppetlabs-apt 2.0.0 or 2.0.1.
Development
Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We can’t access the huge number of platforms and myriad of hardware, software, and deployment configurations that Puppet is intended to serve.
We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
You can read the complete module contribution guide on the Puppet Labs wiki.
Testing
There are two types of tests distributed with this module. Unit tests with rspec-puppet and system tests using rspec-system.
unit tests should be run under Bundler with the gem versions as specified in the Gemfile. To install the necessary gems:
bundle install --path=vendor
Test setup and teardown is handled with rake tasks, so the supported way of running tests is with
bundle exec rake spec
For system test you will also need to install vagrant > 1.3.x and virtualbox > 4.2.10. To run the system tests
bundle exec rake spec:system
To run the tests on different operating systems, see the sets available in .nodeset.xml and run the specific set with the following syntax:
RSPEC_SET=ubuntu-server-12042-x64 bundle exec rake spec:system
Authors
We would like to thank everyone who has contributed issues and pull requests to this module. A complete list of contributors can be found on the GitHub Contributor Graph for the puppetlabs-mongodb module.
Types in this module release
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unsupported Release 1.0.0
Summary
Major release removing Puppet 3 support.
Added
ssl_weak_cert
param inmongodb::server
typesystem_logrotate
param inmongodb
,mongodb::server
, andmongodb::server::config
handle_creds
to handle credentials outside of Puppet (MODULES-1754)sslMode
when SSL is used- ability to use unencrypted passwords
Changed
- lower bound of Puppet requirement to 4.7.0
- use of
sslMode
tosslOnNormalPorts
to determine if SSL is enabled
Fixed
database
property inmongodb_user
to allow hyphens (MODULES-4444)- gsub pattern for
is_master
fact mongodb_version
fact- selinux dbpath contexts in
mongodb::server::config
- Debian-based repo paths
$pidfilepath
for Debian- syntax error in net.ipv6 configuration option
- spec failure caused by Puppet 5
- is_master in mongodb provider
Unsupported Release 0.17.0
Summary
Adding features to improve spec testing, and added ability to manage pidfile creation
Fixed
- gettext and spec.opts
- msync Gemfile for 1.0 frozen strings (MODULES-3631)
- MongoDB 3.12 creates pid file and checks in init script (MODULES-3956)
- gemfile template to be identical (MODULES-3704)
- deprecation errors
Unsupported Release 0.16.0
Summary
We fixed a critical bug where we lost idempotency in 0.15.0. The patch that fix this problem will be part of this release.
Fixed
- Recursively manage only user/group for dbpath
Unsupported Release 0.15.0
Summary
The addition of several new functional features which will help with management and multiple bug fixes.
Added
- Added ability to set PID file mode.
- Recursively manage the contents of dbpath directory.
- Now alllows custom templates.
- Addition of mongo listen port before creating facter.
Fixed
- Now allows hyphens in database names.
- Now converts MongoDB ObjectID objects to generic JSON.
- Use the same regex that the mongodb provider does when correcting for ObjectID values in the isMaster response.
- Fixes to ensure that the auth property for config is parsed correctly.
- Now checks if mongo is up before evaluating is_master fact.
Unsupported Release 0.14.0
Summary
This breaking release increases the lower bound of the puppetlabs-apt dependency to the 2.x series of apt and puppetlabs-stdlib to >= 4.4.0. The operating system metadata is also updated to reflect modern systems.
Added
- Add
mongodb_is_master
fact - Add
mongodb::db::db_name
parameter for exported resource deduplication - Add Debian 8 compatibility
- Add Ubuntu 14.04 compatibility
- Add Ubuntu 16.04 compatibility
- Add puppet 3.x 4.x compatibility metadata
Changed
- Increase apt lower dependency to >= 2.1.0
- Increase stdlib lower dependency to >= 4.4.0
- Drop RHEL & Centos 5
- Drop Debian 6
- Drop Ubuntu 10.04
Fixed
- Catch unconfigured replset configuration queries
- Fix timestamp and other javascript object removal
- Correct permissions on .mongorc.js to 600
Unsupported Release 0.13.0
Summary
Adds several new large features, including the support of mongodb 3.x. Also applies numerous bugfixes, mainly around fixing errors being thrown and syntax issues.
Added
- Adds mongodb_version fact.
- Add mongodb 3.x.
- Update to current msync configs.
- Now ensures that the pidfile exists and is writable.
- Simplified configuration parsing.
- Made argument handling more extensible.
- Added SSL support.
- Made ssl_ca optional when using SSL.
- Added $maxconns to mongodb::server::config.
- Added Suse to operating systems.
Fixed
- Removes empty lines between doc and definition.
- Fix when using admin params : catalog: Found 1 dependency cycle: issue.
- Some syntax error fixes.
- Cleaned up provider formatting.
- Parse NumberLong data type from mongodb outputs to generate valid json.
- Checks if $version is defined before versioncmp.
- Fixed deprecation warning for use of configtimeout.
Unsupported Release 0.12.0
Summary
There are a number of bugfixes and features added in this release including, mongo db 3 engine support, ipv6 support and repo and yum improvements.
Added
- Distinguish between repo and package mgmt
- Immplement retries for MongoDB shell commands
- Initiate replica set creation from localhost if auth is enabled
- Added specific service provider for Debian
- mongo db 3 engine selection support
- added an option to set a custom repository location
- Improve support for MongoDB authentication and replicaset
- Add yum proxy options
- Enable IPv6 in mongodb provider
Fixed
- Fix mongodb_user username => name
- ensure that the client install does not start before the repo setup
- Fix replset not working on mongo 3.x
- Prealloc setting needs to be negated
- Add mongoDB >=3.x new yum repo location
- Add pidfilepath to globals when used in params
- Normalize spacing in template
- Switch to comparing current roles value with @property
- Fix versioncmp when version is undef
- Do not add blank parameter in ipv4
- Apply module sync
Unsupported Release 0.11.0
Summary
Added
- arbiter support to to
mongodb_replset
mongod_service_manage
,mongos_service_manage
, andipv6
tomongodb::globals
service_manage
,unitxsocketprefix
,pidfilepath
,logpath
,fork
,bind_ip
,port
, andrestart
tomongodb::mongos
classkey
,ipv6
,service_manage
, andrestart
tomongodb::server
class- Allow mongodb_conn_validator to take an array of nodes via composite namevar
Fixed
- Update to long apt repo key and bump compatibility to include apt 2
- Fix
nohttpinterface
on >= 2.6 - Fix connection validation when bind_ip is 0.0.0.0
- Fix mongodb_conn_validator to use default port in shard mode
Unsupported Release 0.10.0
Summary
This release adds a number of significant features and several bug fixes.
Added
- Adds support for sharding
- Adds support for RHEL 7
- Adds rudimentary support for SSL configuration
- Adds support for the enterprise repository
Fixed
- Fixes support for running on non-default ports
- Fixes the idempotency of password setting (for mongo 2.6)
Unsupported Release 0.9.0
Summary
This release has a number of new parameters, support for 2.6, improved providers, and several bugfixes.
Added
- New parameters:
mongodb::globals
$service_ensure
$service_enable
- New parameters:
mongodb
$quiet
- New parameters:
mongodb::server
$service_ensure
$service_enable
$quiet
$config_content
- Support for mongodb 2.6
- Reimplement
mongodb_user
andmongodb_database
provider - Added
mongodb_conn_validator
type
Fixed
- Use hkp for the apt keyserver
- Fix mongodb database existance check
- Fix
$server_package_name
problem (MODULES-690) - Make sure
pidfilepath
doesn't have any spaces - Providers need the client command before they can work (MODULES-1285)
Unsupported Release 0.8.0
Summary
This feature features a rewritten mongodb_replset{} provider, includes several important bugfixes, ruby 1.8 support, and two new features.
Added
- Rewritten mongodb_replset{}, featuring puppet resource support, prefetching, and flushing.
- Add Ruby 1.8 compatibility.
- Adds
syslog
, allowing you to configure mongodb to send all logging to the hosts syslog. - Add mongodb::replset, a wrapper class for hiera users.
- Improved testing!
Fixed
- Fixes the package names to work since 10gen renamed them again.
- Fix provider name in the README.
- Disallow
nojournal
andjournal
to be set at the same time. - Changed - to = for versioned install on Ubuntu.
Unsupported Release 0.7.0
Summary
Added Replica Set Type and Provider
Unsupported Release 0.6.0
Summary
Added support for installing MongoDB client on RHEL family systems.
Unsupported Release 0.5.0
Summary
Added types for providers for Mongo users and databases.
Unsupported Release 0.4.0
Major refactoring of the MongoDB module. Includes a new 'mongodb::globals' that consolidates many shared parameters into one location. This is an API-breaking release in anticipation of a 1.0 release.
Unsupported Release 0.3.0
Summary
Adds a number of parameters and fixes some platform specific bugs in module deployment.
Unsupported Release 0.2.0
Summary
This release fixes a duplicate parameter.
Fixed
- Fix a duplicated parameter.
Unsupported Release 0.1.0
- Add support for RHEL/CentOS
- Change default mongodb install location to OS repo
Unsupported Release 0.0.2
- Fix Modulefile typo.
- Remove repo pin.
- Update spec tests and add travis support.
Unsupported Release 0.0.1
- Initial Release.
Dependencies
- puppetlabs/apt (>= 2.1.0 < 5.0.0)
- puppetlabs/stdlib (>= 4.4.0 < 5.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.