mongodbconfbackend.rst 3.25 KB
Newer Older
1
2
3
4
5
6
7
8
MongoDB configuration backends
==============================

`MongoDB <https://www.mongodb.org/>`__ is a NoSQL database that can be
used both for storing configuration and
:doc:`sessions<mongodbsessionbackend>`. You need to install Perl MongoDB
module to be able to use this backend.

9
10
11
12
13
14
15
16
17
18
19
20
For Debian, you can install mongodb module with:

::

   apt install libmongodb-perl

For CentOS:

::

   yum install perl-MongoDB

21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
See :doc:`how to change configuration backend<changeconfbackend>` to
change your configuration database.

Configuration
-------------

To use a MongoDB backend, configure your ``lemonldap-ng.ini`` file
(section configuration) :

-  Choose MongoDB as type
-  Set dbName and collectionName parameters if different than default
   values (llConfDB and configuration)
-  Set host and if needed db_name username, password and ssl fields as
   follow.

Example :

Maxime Besson's avatar
Maxime Besson committed
38
.. code-block:: ini
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

   [configuration]
   type = MongoDB
   dbName = llConfDB
   collectionName = configuration
   ; using a single server
   host = 127.0.0.1:27017
   ; using a replicaSet
   ; host = mongodb://mongo1.example.com,mongo2.example.com/?replicaSet=myset
   ssl = 1
   ; authentication parameters
   db_name = admin
   user = lluser
   password = llpassword

===================================================================================================================== ================================ ==========
Maxime Besson's avatar
Maxime Besson committed
55
Optional parameters (see `MongoDB::MongoClient <http://search.cpan.org/perldoc?MongoDB%3A%3AMongoClient>`__ man page)
56
57
58
59
===================================================================================================================== ================================ ==========
Name                                                                                                                  Comment                          Example
db_name                                                                                                               Admin database (default: admin)  admin
auth_mechanism                                                                                                        Authentication mechanism         PLAIN
Maxime Besson's avatar
Maxime Besson committed
60
auth_mechanism_properties
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
connect_timeout                                                                                                       Connection timeout               10000
ssl                                                                                                                   Boolean or hash ref (default: 0) 1
username                                                                                                              Username to use to connect       lluser
password                                                                                                              Password                         llpassword
===================================================================================================================== ================================ ==========

Mini MongoDB howto
==================

Just some commands needed to create collection and user:

::

   $ mongo
   connecting to: test
   > use configuration
   switched to db configuration
   > db.createCollection("configuration")
   ...
   > db.createUser({user:"lluser",pwd:"llpassword",roles:["readWrite"]})
   ...
   > exit
   bye
   $