Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/voxpupuli/puppet-mongodb

mongodb installation
https://github.com/voxpupuli/puppet-mongodb

centos-puppet-module debian-puppet-module hacktoberfest linux-puppet-module puppet redhat-puppet-module sles-puppet-module ubuntu-puppet-module

Last synced: about 2 months ago
JSON representation

mongodb installation

Awesome Lists containing this project

README

        

# mongodb puppet module

[![Build Status](https://github.com/voxpupuli/puppet-mongodb/workflows/CI/badge.svg)](https://github.com/voxpupuli/puppet-mongodb/actions?query=workflow%3ACI)
[![Release](https://github.com/voxpupuli/puppet-mongodb/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/puppet-mongodb/actions/workflows/release.yml)
[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/mongodb.svg)](https://forge.puppetlabs.com/puppet/mongodb)
[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/mongodb.svg)](https://forge.puppetlabs.com/puppet/mongodb)
[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/mongodb.svg)](https://forge.puppetlabs.com/puppet/mongodb)
[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/mongodb.svg)](https://forge.puppetlabs.com/puppet/mongodb)
[![License](https://img.shields.io/github/license/voxpupuli/puppet-mongodb.svg)](https://github.com/voxpupuli/puppet-mongodb/blob/master/LICENSE)

#### Table of Contents

1. [Overview](#overview)
2. [Module Description - What does the module do?](#module-description)
3. [Setup - The basics of getting started with mongodb](#setup)
4. [Usage - Configuration options and additional functionality](#usage)
5. [Limitations - OS compatibility, etc.](#limitations)
6. [Development - Guide for contributing to the module](#development)

## Overview

Installs MongoDB on RHEL/Ubuntu/Debian/SLES from community/enterprise repositories
or alternatively from custom repositories.

## Module Description

The MongoDB module manages mongod server installation and configuration of the
mongod daemon.

The MongoDB module also manages mongos, Ops Manager and the mongdb-mms setup.

## Setup

### What MongoDB affects

* MongoDB packages.
* MongoDB configuration files.
* MongoDB services.
* MongoDB apt/yum/zypper repository.

### Beginning with MongoDB

If you 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:

```puppet
class {'mongodb::server':
port => 27018,
verbose => true,
}
```

To install client with default options run `include mongodb::client`

To override the default mongodb repo version you need the following:

```puppet
class {'mongodb::globals':
repo_version => '4.4',
}
-> class {'mongodb::server': }
-> class {'mongodb::client': }
```

If you have a custom Mongodb repository you can opt out of repo management:

```puppet
class {'mongodb::globals':
manage_package_repo => false,
}
-> 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](#class-mongodbserver).
There is also `mongodb::globals` to set some global settings, on its own this
class does nothing.

### Create MongoDB database

To install MongoDB server, create database "testdb" and user "user1" with password "pass1".

```puppet
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'.

### Sharding

If one plans to configure sharding for a Mongo deployment, the module offer
the `mongos` installation. `mongos` can be installed the following way :

```puppet
class {'mongodb::mongos' :
configdb => ['configsvr1.example.com:27018'],
}
```

### Ops Manager

To install Ops Manager and have it run with a local MongoDB application server do the following:

```puppet
class {'mongodb::opsmanager':
opsmanager_url => 'http://opsmanager.yourdomain.com'
mongo_uri => 'mongodb://yourmongocluster:27017,
from_email_addr => '[email protected]',
reply_to_email_addr => '[email protected]',
admin_email_addr => '[email protected]',
$smtp_server_hostname => 'email-relay.yourdomain.com'
}
```

The default settings will not set useful email addresses. You can also just run `include mongodb::opsmanager`
and then set the emails later.

## Ops Manager Usage

Most of the interaction for the server is done via `mongodb::opsmanager`. For
more options please have a look at [mongodb::opsmanager](#class-mongodbopsmanager).

## Limitations

Look at [metadata.json](metadata.json) for tested OSes.

## Development

This module is maintained by [Vox Pupuli](https://voxpupuli.org/). Voxpupuli
welcomes new contributions to this module, especially those that include
documentation and rspec tests. We are happy to provide guidance if necessary.

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for more details.

### Authors

* Puppetlabs Module Team
* Voxpupuli Team

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](https://github.com/voxpupuli/puppet-mongodb/graphs/contributors)
for the [puppet-mongodb module](https://github.com/voxpupuli/puppet-mongodb).