All Projects → ansible-collections → community.mongodb

ansible-collections / community.mongodb

Licence: GPL-3.0 license
MongoDB Ansible Collection

Programming Languages

python
139335 projects - #7 most used programming language
Jinja
831 projects
shell
77523 projects

Projects that are alternatives of or similar to community.mongodb

Tiedot
A rudimentary implementation of a basic document (NoSQL) database in Go
Stars: ✭ 2,643 (+3424%)
Mutual labels:  nosql
ansible-meraki
Cisco Meraki Ansible Collection
Stars: ✭ 54 (-28%)
Mutual labels:  ansible-collection
gorm-mongodb
GORM for MongoDB
Stars: ✭ 58 (-22.67%)
Mutual labels:  nosql
Data
ATK Data - Data Access Framework for high-latency databases (Cloud SQL/NoSQL).
Stars: ✭ 243 (+224%)
Mutual labels:  nosql
Rxdb
🔄 A client side, offline-first, reactive database for JavaScript Applications
Stars: ✭ 16,670 (+22126.67%)
Mutual labels:  nosql
arangors
Easy to use rust driver for arangoDB
Stars: ✭ 120 (+60%)
Mutual labels:  nosql
Db
Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.
Stars: ✭ 2,832 (+3676%)
Mutual labels:  nosql
yserial
NoSQL y_serial Python module – warehouse compressed objects with SQLite
Stars: ✭ 17 (-77.33%)
Mutual labels:  nosql
MongoDB-University
Repo for All MongoDB University Courses
Stars: ✭ 102 (+36%)
Mutual labels:  nosql
azure
Development area for Azure Collections
Stars: ✭ 176 (+134.67%)
Mutual labels:  ansible-collection
Eshop
Eshop + Content Management System (CMS) written in Node.js / Total.js.
Stars: ✭ 243 (+224%)
Mutual labels:  nosql
Hibari
Hibari is a production-ready, distributed, ordered key-value, big data store. Hibari uses chain replication for strong consistency, high-availability, and durability. Hibari has excellent performance especially for read and large value operations.
Stars: ✭ 253 (+237.33%)
Mutual labels:  nosql
Cakebase
Cakebase is an asynchronous json database for nodejs.
Stars: ✭ 28 (-62.67%)
Mutual labels:  nosql
Ravendb
ACID Document Database
Stars: ✭ 2,870 (+3726.67%)
Mutual labels:  nosql
simpledbm
SimpleDBM is an Open Source Multi-Threaded Embeddable Transactional Database Engine in Java.
Stars: ✭ 51 (-32%)
Mutual labels:  nosql
Angularmaterialfirebase
🔥 Full stack starter app with Angular 8, Material Design and Firebase (+ demo)
Stars: ✭ 229 (+205.33%)
Mutual labels:  nosql
NoSQLDataEngineering
NoSQL Data Engineering
Stars: ✭ 25 (-66.67%)
Mutual labels:  nosql
overview
Collections overview, how to request a namespace
Stars: ✭ 226 (+201.33%)
Mutual labels:  ansible-collection
hocassian-people-neo4j
NoSQL可视化人脉图谱项目:非关系型数据库作为更符合人脑记忆的数据展现形式,在未来理论会成为应用界的主流,希望该项目能够成为推动HelpDesk、数据可视化、数据看板等IT基础能力持续降低上手门槛的起点。
Stars: ✭ 26 (-65.33%)
Mutual labels:  nosql
kubernetes.core
The collection includes a variety of Ansible content to help automate the management of applications in Kubernetes and OpenShift clusters, as well as the provisioning and maintenance of clusters themselves.
Stars: ✭ 159 (+112%)
Mutual labels:  ansible-collection

MongoDB Version and PyMongoDB Version Compatibility

  • This collection is tested against the most recent two minor MongoDB releases, currently 5.0.X and 6.0.X.
  • This collection is tested against PyMongo version 3.12.X and latest.
  • This collection will not run against any MongoDB version lower than 4.0. You can set strict_compatibility to false to override this behaviour but don't expect 100% success. It might be a better approach to use an older release of this collection (1.3.4 or earlier) if you're using an old MongoDB version (3.6 or earlier).
  • Compatibility may be maintained for older software versions but is not guaranteed. Please upgrade your PyMongo driver version if you encounter difficulties with older versions.
  • Support for PyMongo versions less than 4.X will be dropped in the future. Drop support for pymongo < 4.0?

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. These roles should not be used to manage MongoDB instances that have been previously installed or configured through other means.

  • 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.

community.mongodb Role Tags

General role tags

These tags are applicable across all roles.

tags comment
mongodb Tasks specific to MongoDB.
debian Tasks specific to Debian Family Operating Systems.
redhat Tasks specific to RedHat Family Operating Systems.
pip Tasks working with pip.
vars Tasks that load variables.
pkg Tasks that install packages.
debug Tasks that output debugging info.
service Tasks dealing with system services.
setup Tasks that are mainly executed during initial deployment.
ci Tasks that are specific to the community.mongodb CI code.
linux Tasks affecting Linux OS settings.

Role Specific Tags

These tags apply to the specific roles as indicated.

role tag comment
mongodb_auth admin_user Tasks that work with the MongoDB Administrator user.
mongodb_auth app_user Tasks that work with MongoDB app users.

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

Release Notes

Needs improvement but the general process for issuing a new release to Ansible Galaxy is as follows...

  • View commits since last release and copy text for release notes
git log 1.3.0..HEAD
git log 1.3.0..HEAD --oneline
  • Create a new branch
  • Update galaxy.yml with version and any other appropriate info
  • Update changelogs/changelog.yaml
  • Update CHANGELOG.rst
  • Create a pull request
  • Review and merge when happy
  • Tag release on the master branch
git tag <release>
git push --tags

Automation will bundle the release and push to Galaxy. Should take around 10-15 minutes.

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.
  • Unless there's a very good reason for it, i.e. it's a bug, we aim not to change default behaviour.

Stargazers over time

Stargazers over time

License

GNU General Public License v3.0 or later

See LICENSING to see the full text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].