Thanks to visit codestin.com
Credit goes to github.com

Skip to content

willyd61/community.mongodb

 
 

Repository files navigation

Mongodb Collection

Category Status
Github CI CI
Github Docs documentation
Codecov Codecov
CI Roles CI_roles
AutomatingMongoDBWithAnsible CI-basic
AutomatingMongoDBWithAnsible CI-etc
AutomatingMongoDBWithAnsible CI-resync
AutomatingMongoDBWithAnsible CI-upgrade-downgrade
Latest Build Build & Publish Collection

This collection called mongodb aims at providing all Ansible modules allowing to interact with MongoDB. The modules present in Ansible 2.9 are included in this collection and will benefit from the evolutions and quality requirements from this collection.

As this is an independent collection, it can be released on its own release cadence.

If you like this collection please give us a rating on Ansible Galaxy.

Collection contents

Roles

These roles prepare servers with Debian-based and RHEL-based distributions to run MongoDB:

  • community.mongodb.mongodb_linux: A simple role to configure Linux Operating System settings, as advised in the MongoDB Production Notes.

  • community.mongodb.mongodb_selinux: Configure SELinux for MongoDB.

  • community.mongodb.mongodb_repository: Configures a package repository for MongoDB on Debian and RedHat based platforms.

  • community.mongodb.mongodb_install: Install MongoDB packages on Debian and RedHat based platforms. This role, unlike all other roles, provides for installing specific versions of mongodb-org packages. Other roles merely validate that mongodb-org is installed/present; they do not install particular versions.

These roles manage configuring and starting various MongoDB services.

  • community.mongodb.mongodb_mongod: Configure the mongod service (includes populating mongod.conf) which is a MongoDB replicaset or standalone server.
  • community.mongodb.mongodb_mongos: Configure the mongos service (includes populating mongos.conf) which only runs in a sharded MongoDB cluster.
  • community.mongodb.mongodb_config: Configure the CSRS Config Server Replicaset for a MongoDB sharded cluster. The CSRS is a special-purpose instance of mongod that hosts the config database for the sharded cluster. For standalone installations, please use the mongodb_mongod role instead.
  • community.mongodb.mongodb_auth: Configure auth on MongoDB servers. NB: The other MongoDB server config roles (mongodb_mongod, mongodb_mongos, mongodb_config) do not configure auth. Use this role in conjunction with the other roles.

Plugins

Lookup Plugins

  • community.mongodb.mongodb: A lookup plugin that gets info from a collection using the MongoDB find() function.

Cache Plugins

  • community.mongodb.mongodb: A cache plugin that stores the host fact cache records in MongoDB.

Modules

These modules are for any MongoDB cluster (standalone, replicaset, or sharded):

  • community.mongodb.mongodb_index: Creates or drops indexes on MongoDB collections.
  • community.mongodb.mongodb_info: Gather information about MongoDB instance.
  • community.mongodb.mongodb_monitoring: Manages the free monitoring feature.
  • community.mongodb.mongodb_oplog: Resizes the MongoDB oplog (MongoDB 3.6+ only).
  • community.mongodb.mongodb_parameter: Change an administrative parameter on a MongoDB server.
  • community.mongodb.mongodb_schema: Manages MongoDB Document Schema Validators.
  • community.mongodb.mongodb_shell: Run commands via the MongoDB shell.
  • community.mongodb.mongodb_shutdown: Cleans up all database resources and then terminates the mongod/mongos process.
  • community.mongodb.mongodb_user: Adds or removes a user from a MongoDB database.

These modules are only useful for replicaset (or sharded) MongoDB clusters:

  • community.mongodb.mongodb_maintenance: Enables or disables maintenance mode for a secondary member.
  • community.mongodb.mongodb_replicaset: Initialises a MongoDB replicaset.
  • community.mongodb.mongodb_status: Validates the status of the replicaset.
  • community.mongodb.mongodb_stepdown: Step down the MongoDB node from a PRIMARY state.

These modules are only useful for sharded MongoDB clusters:

  • community.mongodb.mongodb_balancer: Manages the MongoDB Sharded Cluster Balancer.
  • community.mongodb.mongodb_shard: Add or remove shards from a MongoDB Cluster.
  • community.mongodb.mongodb_shard_tag: Manage Shard Tags.
  • community.mongodb.mongodb_shard_zone: Manage Shard Zones.

Running the integration and unit tests

The ansible-test tool requires a specific directory hierarchy to function correctly so please follow carefully.

  • Create the required directory structure. N-B. The ansible-test tool requires this format.
mkdir -p git/ansible_collections/community
cd git/ansible_collections/community
  • Clone the required projects.
git clone  https://github.com/ansible-collections/community.mongodb.git ./mongodb
git clone  https://github.com/ansible-collections/community.general.git ./general
  • Create and activate a virtual environment.
virtualenv venv
source venv/bin/activate
  • Change to the project directory.
cd mongodb
  • Install the devel branch of ansible-base.
pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
  • Run integration tests for the mongodb_shard module.
ansible-test integration --docker default -v --color --python 3.6 mongodb_shard
  • Run integration tests for the mongodb_status module.
ansible-test integration --docker default -v --color --python 3.6 mongodb_status
  • Run integration tests for the mongodb_oplog module.
ansible-test integration --docker ubuntu1804 -v --color --python 3.6 mongodb_oplog
  • Run tests for everything in the collection.
ansible-test integration --docker default -v --color --python 3.6
  • Run the units tests
ansible-test units --docker default -v --color --python 3.6

GitHub workflow

  • Maintainers would be members of this GitHub Repo
  • Branch protections could be used to enforce 1 (or 2) reviews from relevant maintainers CODEOWNERS

Contributing

Any contribution is welcome and we only ask contributors to:

  • Provide at least integration tests for any contribution.
  • Create an issue for any significant contribution that would change a large portion of the codebase.

License

GNU General Public License v3.0 or later

See LICENCING to see the full text.

About

MongoDB Ansible Collection

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 86.4%
  • Jinja 8.2%
  • Shell 3.7%
  • Makefile 1.1%
  • Other 0.6%