| ======= |
| MongoDB |
| ======= |
| |
| MongoDB (from "humongous") is an open-source document database, and the leading NoSQL database. Written in C++. |
| |
| Available states |
| ================ |
| |
| .. contents:: |
| :local: |
| |
| ``mongodb.server`` |
| -------------------- |
| |
| Setup MongoDB server |
| |
| Available metadata |
| ================== |
| |
| .. contents:: |
| :local: |
| |
| ``metadata.mongodb.server.single`` |
| ---------------------------------- |
| |
| Single-node MongoDB setup |
| |
| ``metadata.mongodb.server.cluster`` |
| ----------------------------------- |
| |
| Clustered MongoDB setup |
| |
| Configuration parameters |
| ======================== |
| |
| |
| Example reclass |
| =============== |
| |
| Setup MongoDB with database for ceilometer. |
| |
| .. code-block:: yaml |
| |
| classes: |
| - service.mongodb.server.cluster |
| parameters: |
| _param: |
| mongodb_server_replica_set: ceilometer |
| mongodb_ceilometer_password: cloudlab |
| mongodb_admin_password: cloudlab |
| mongodb_shared_key: xxx |
| mongodb: |
| server: |
| database: |
| ceilometer: |
| enabled: true |
| password: ${_param:mongodb_ceilometer_password} |
| users: |
| - name: ceilometer |
| password: ${_param:mongodb_ceilometer_password} |
| |
| Sample pillars |
| ============== |
| |
| Simple single server |
| |
| .. code-block:: yaml |
| |
| mongodb: |
| server: |
| enabled: true |
| bind: |
| address: 0.0.0.0 |
| port: 27017 |
| admin: |
| username: admin |
| password: magicunicorn |
| database: |
| dbname: |
| enabled: true |
| encoding: 'utf8' |
| users: |
| - name: 'username' |
| password: 'password' |
| |
| Cluster of 3 nodes |
| |
| .. code-block:: yaml |
| |
| mongodb: |
| server: |
| enabled: true |
| logging: |
| verbose: false |
| logLevel: 1 |
| oplogLevel: 0 |
| admin: |
| user: admin |
| password: magicunicorn |
| master: mongo01 |
| members: |
| - host: 192.168.1.11 |
| priority: 2 |
| - host: 192.168.1.12 |
| - host: 192.168.1.13 |
| replica_set: default |
| shared_key: magicunicorn |
| |
| It's possible that first Salt run on master node won't pass correctly before |
| all slave nodes are up and ready. |
| Simply run salt again on master node to setup cluster, databases and users. |
| |
| To check cluster status, execute following: |
| |
| .. code-block:: bash |
| |
| mongo 127.0.0.1:27017/admin -u admin -p magicunicorn --eval "rs.status()" |
| |
| Read more |
| ========= |
| |
| * http://docs.mongodb.org/manual/ |
| * http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ |
| * https://www.linode.com/docs/databases/mongodb/creating-a-mongodb-replication-set-on-ubuntu-12-04-precise |